Closed kajo-kurisu closed 12 months ago
i used git checkout in swarm_msg package but i found a new problem
FAILED: CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o
/usr/bin/c++ -DGFLAGS_IS_A_DLL=0 -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"d2common\" -Dd2common_EXPORTS -I/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/include -I/opt/ros/noetic/include -I/opt/ros/noetic/share/xmlrpcpp/cmake/../../../include/xmlrpcpp -I/home/sy/sy/D2SLAM_ws_copy/devel/.private/swarm_msgs/include -I/home/sy/sy/D2SLAM_ws_copy/devel/.private/swarmcomm_msgs/include -I/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarm_msgs/include -I/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarmcomm_msgs/include -isystem /usr/include/eigen3 -isystem /usr/local/include/opencv -g -fPIC -fdiagnostics-color=always -g -O3 -Wall -Wno-deprecated-declarations -Wno-format -Wno-reorder -std=gnu++1z -MD -MT CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o -MF CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o.d -o CMakeFiles/d2common.dir/src/d2pgo_types.cpp.o -c /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp: In constructor ‘D2Common::DPGOData::DPGOData(const DistributedPGOData_t&)’:
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:30:71: error: invalid conversion from ‘__gnu_cxx::__alloc_traits<std::allocator<long int> >::value_type {aka long int}’ to ‘const double*’ [-fpermissive]
frame_poses[msg.frame_ids[i]] = Swarm::Pose(msg.frame_poses[i]);
^
In file included from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/include/d2common/d2pgo_types.h:4:0,
from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:1:
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarm_msgs/include/swarm_msgs/Pose.h:268:5: note: initializing argument 1 of ‘Swarm::Pose::Pose(const double*, bool)’
Pose(const double v[], bool xyzyaw = false) {
^~~~
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:32:37: error: conversion from ‘const value_type {aka const long int}’ to non-scalar type ‘Pose_t’ requested
Pose_t a = msg.frame_poses[i];
^
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:33:53: error: request for member ‘data’ in ‘msg.DistributedPGOData_t::frame_duals.std::vector<long int>::operator[](i)’, which is of non-class type ‘const value_type {aka const long int}’
Map<const VectorXf> dual(msg.frame_duals[i].data.data(),msg.frame_duals[i].data.size());
^~~~
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:33:84: error: request for member ‘data’ in ‘msg.DistributedPGOData_t::frame_duals.std::vector<long int>::operator[](i)’, which is of non-class type ‘const value_type {aka const long int}’
Map<const VectorXf> dual(msg.frame_duals[i].data.data(),msg.frame_duals[i].data.size());
^~~~
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/c++allocator.h:33:0,
from /usr/include/c++/7/bits/allocator.h:46,
from /usr/include/c++/7/vector:61,
from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/swarm_msgs/swarm_msgs/include/swarm_msgs/DistributedPGOData_t.hpp:12,
from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/include/d2common/d2pgo_types.h:2,
from /home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:1:
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = long int; _Args = {Pose_t}; _Tp = long int]’:
/usr/include/c++/7/bits/alloc_traits.h:475:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = long int; _Args = {Pose_t}; _Tp = long int; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<long int>]’
/usr/include/c++/7/bits/vector.tcc:100:30: required from ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {Pose_t}; _Tp = long int; _Alloc = std::allocator<long int>; std::vector<_Tp, _Alloc>::reference = long int&]’
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:79:50: required from here
/usr/include/c++/7/ext/new_allocator.h:136:4: error: cannot convert ‘Pose_t’ to ‘long int’ in initialization
{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/ext/new_allocator.h: In instantiation of ‘void __gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = long int; _Args = {Vector_t&}; _Tp = long int]’:
/usr/include/c++/7/bits/alloc_traits.h:475:4: required from ‘static void std::allocator_traits<std::allocator<_Tp1> >::construct(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*, _Args&& ...) [with _Up = long int; _Args = {Vector_t&}; _Tp = long int; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocator<long int>]’
/usr/include/c++/7/bits/vector.tcc:100:30: required from ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {Vector_t&}; _Tp = long int; _Alloc = std::allocator<long int>; std::vector<_Tp, _Alloc>::reference = long int&]’
/home/sy/sy/D2SLAM_ws_copy/src/D2SLAM/d2common/src/d2pgo_types.cpp:87:46: required from here
/usr/include/c++/7/ext/new_allocator.h:136:4: error: cannot convert ‘Vector_t’ to ‘long int’ in initialization
please use docker instead of compile it on your local host.
Thanks for your reply, problem solved
The following files are missing when compiling the project in docker
include <swarm_msgs/DistributedPGOData_t.hpp>
include <swarm_msgs/DPGOData.h>
include <swarm_msgs/Odometry.h>
include <swarm_msgs/Landmark.h>