UbiquityRobotics / move_basic

A minimal navigation node
BSD 3-Clause "New" or "Revised" License
69 stars 21 forks source link

Linker problem at Intel Euclid / Ubuntu 16.04 #36

Closed mockbot closed 5 years ago

mockbot commented 6 years ago

Hi, I'm trying to compile move_basic on Intel Euclid with Ubuntu 16.04 (ros kinetic). During catkin_make process, I get a linker error: [ 0%] Linking CXX executable /intel/euclid/euclid_ws/devel/lib/move_basic/move_basic CMakeFiles/move_basic.dir/src/obstacle_detector.cpp.o: In function ObstacleDetector::range_callback(boost::shared_ptr<sensor_msgs::Range_<std::allocator<void> > const> const&)': obstacle_detector.cpp:(.text+0xd1c): undefined reference tovoid tf2::fromMsg<geometrymsgs::Point<std::allocator >, tf2::Vector3>(geometrymsgs::Point<std::allocator > const&, tf2::Vector3&)' obstacle_detector.cpp:(.text+0xfa4): undefined reference to void tf2::fromMsg<geometry_msgs::Vector3_<std::allocator<void> >, tf2::Vector3>(geometry_msgs::Vector3_<std::allocator<void> > const&, tf2::Vector3&)' obstacle_detector.cpp:(.text+0x102b): undefined reference tovoid tf2::fromMsg<geometrymsgs::Vector3<std::allocator >, tf2::Vector3>(geometrymsgs::Vector3<std::allocator > const&, tf2::Vector3&)' CMakeFiles/move_basic.dir/src/obstacle_detector.cpp.o: In function ObstacleDetector::scan_callback(boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&)': obstacle_detector.cpp:(.text+0x188d): undefined reference tovoid tf2::fromMsg<geometrymsgs::Point<std::allocator >, tf2::Vector3>(geometrymsgs::Point<std::allocator > const&, tf2::Vector3&)' obstacle_detector.cpp:(.text+0x1917): undefined reference to `void tf2::fromMsg<geometrymsgs::Vector3<std::allocator >, tf2::Vector3>(geometrymsgs::Vector3<std::allocator > const&, tf2::Vector3&)' collect2: error: ld returned 1 exit status move_basic/CMakeFiles/move_basic.dir/build.make:348: recipe for target '/intel/euclid/euclid_ws/devel/lib/move_basic/move_basic' failed make[3]: [/intel/euclid/euclid_ws/devel/lib/move_basic/move_basic] Error 1 CMakeFiles/Makefile2:6716: recipe for target 'move_basic/CMakeFiles/move_basic.dir/all' failed make[2]: [move_basic/CMakeFiles/move_basic.dir/all] Error 2 CMakeFiles/Makefile2:6728: recipe for target 'move_basic/CMakeFiles/move_basic.dir/rule' failed make[1]: [move_basic/CMakeFiles/move_basic.dir/rule] Error 2 Makefile:2526: recipe for target 'move_basic' failed make: [move_basic] Error 2 Invoking "make move_basic -j4 -l4" failed

I've installed all tf2 related libs. Any idea, which library is missing at my system ?

Thanks in advance Chrimo

jim-v commented 6 years ago

It seems that

void fromMsg(const geometry_msgs::Vector3& in, tf2::Vector3& out)

is not a library function, but is implemented in /opt/ros/kinetic/include/tf2_geometry_msgs/tf2_geometry_msgs.h

Can you try adding

#include <tf2_geometry_msgs/tf2_geometry_msgs.h>

to move_basic/src/obstacle_detector.cpp and let me know what happens.

mockbot commented 6 years ago

I've tried it with your suggestions:

but

please watch this:

euclid@EUCLID_7187:/intel/euclid/euclid_ws$ catkin_make move_basic Base path: /intel/euclid/euclid_ws Source space: /intel/euclid/euclid_ws/src Build space: /intel/euclid/euclid_ws/build Devel space: /intel/euclid/euclid_ws/devel Install space: /intel/euclid/euclid_ws/install

Running command: "make cmake_check_build_system" in "/intel/euclid/euclid_ws/build"

Running command: "make move_basic -j4 -l4" in "/intel/euclid/euclid_ws/build"

[ 0%] Built target topic_tools_generate_messages_eus [ 0%] Built target pcl_msgs_generate_messages_py [ 0%] Built target topic_tools_generate_messages_lisp [ 0%] Built target topic_tools_generate_messages_py [ 0%] Built target std_srvs_generate_messages_nodejs [ 0%] Built target visualization_msgs_generate_messages_cpp [ 0%] Built target visualization_msgs_generate_messages_nodejs [ 0%] Built target sensor_msgs_generate_messages_eus [ 0%] Built target actionlib_generate_messages_nodejs [ 0%] Built target actionlib_msgs_generate_messages_cpp [ 0%] Built target topic_tools_generate_messages_cpp [ 0%] Built target sensor_msgs_generate_messages_cpp [ 0%] Built target nodelet_generate_messages_eus [ 0%] Built target nav_msgs_generate_messages_cpp [ 0%] Built target tf2_msgs_generate_messages_lisp [ 0%] Built target tf2_msgs_generate_messages_py [ 0%] Built target actionlib_msgs_generate_messages_nodejs [ 0%] Built target map_msgs_generate_messages_py [ 0%] Built target nodelet_generate_messages_cpp [ 0%] Built target move_base_msgs_generate_messages_cpp [ 0%] Built target actionlib_msgs_generate_messages_py [ 0%] Built target dynamic_reconfigure_generate_messages_nodejs [ 0%] Built target map_msgs_generate_messages_cpp [ 0%] Built target actionlib_msgs_generate_messages_eus [ 0%] Built target actionlib_generate_messages_lisp [ 0%] Built target nav_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_py [ 0%] Built target rosgraph_msgs_generate_messages_eus [ 0%] Built target rosgraph_msgs_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_cpp [ 0%] Built target tf2_msgs_generate_messages_cpp [ 0%] Built target nodelet_generate_messages_py [ 0%] Built target rosgraph_msgs_generate_messages_cpp [ 0%] Built target pcl_msgs_generate_messages_eus [ 0%] Built target geometry_msgs_generate_messages_cpp [ 0%] Built target visualization_msgs_generate_messages_lisp [ 0%] Built target roscpp_generate_messages_eus [ 0%] Built target bond_generate_messages_eus [ 0%] Built target tf_generate_messages_lisp [ 0%] Built target rosgraph_msgs_generate_messages_lisp [ 0%] Built target tf2_msgs_generate_messages_nodejs [ 0%] Built target move_base_msgs_generate_messages_nodejs [ 0%] Built target costmap_2d_gencfg [ 0%] Built target sensor_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_lisp [ 0%] Built target geometry_msgs_generate_messages_py [ 0%] Built target geometry_msgs_generate_messages_lisp [ 0%] Built target bond_generate_messages_py [ 0%] Built target std_srvs_generate_messages_lisp [ 0%] Built target std_msgs_generate_messages_lisp [ 0%] Built target visualization_msgs_generate_messages_py [ 0%] Built target move_base_msgs_generate_messages_eus [ 0%] Built target actionlib_generate_messages_py [ 0%] Built target dynamic_reconfigure_generate_messages_py [ 0%] Built target geometry_msgs_generate_messages_eus [ 0%] Built target geometry_msgs_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_py [ 0%] Built target std_srvs_generate_messages_py [ 0%] Built target tf_generate_messages_nodejs [ 0%] Built target std_msgs_generate_messages_eus [ 0%] Built target actionlib_generate_messages_eus [ 0%] Built target actionlib_msgs_generate_messages_lisp [ 0%] Built target move_base_msgs_generate_messages_lisp [ 0%] Built target std_msgs_generate_messages_cpp [ 0%] Built target sensor_msgs_generate_messages_nodejs [ 0%] Built target costmap_2d_generate_messages_lisp [ 0%] Built target tf_generate_messages_cpp [ 0%] Built target std_srvs_generate_messages_eus [ 0%] Built target tf_generate_messages_eus [ 0%] Built target tf_generate_messages_py [ 0%] Built target map_msgs_generate_messages_lisp [ 0%] Built target topic_tools_generate_messages_nodejs [ 0%] Built target sensor_msgs_generate_messages_lisp [ 0%] Built target costmap_2d_generate_messages_cpp [ 0%] Built target dynamic_reconfigure_gencfg [ 0%] Built target actionlib_generate_messages_cpp [ 0%] Built target costmap_2d_generate_messages_py [ 0%] Built target rosgraph_msgs_generate_messages_py [ 0%] Built target costmap_2d_generate_messages_eus [ 0%] Built target costmap_2d_generate_messages_nodejs [ 0%] Built target dynamic_reconfigure_generate_messages_cpp [ 0%] Built target map_msgs_generate_messages_nodejs [ 0%] Built target dynamic_reconfigure_generate_messages_lisp [ 0%] Built target map_msgs_generate_messages_eus [ 0%] Built target tf2_msgs_generate_messages_eus [ 0%] Built target pcl_ros_gencfg [ 0%] Built target nav_msgs_generate_messages_eus [ 0%] Built target nav_msgs_generate_messages_lisp [ 0%] Built target nav_msgs_generate_messages_nodejs [ 0%] Built target nodelet_generate_messages_lisp [ 0%] Built target move_base_msgs_generate_messages_py [ 0%] Built target nodelet_generate_messages_nodejs [ 0%] Built target bond_generate_messages_cpp [ 0%] Built target bond_generate_messages_lisp [ 0%] Built target std_srvs_generate_messages_cpp [ 0%] Built target pcl_msgs_generate_messages_cpp [ 0%] Built target pcl_msgs_generate_messages_lisp [ 0%] Built target pcl_msgs_generate_messages_nodejs [ 0%] Built target bond_generate_messages_nodejs [ 0%] Built target visualization_msgs_generate_messages_eus [ 0%] Built target dynamic_reconfigure_generate_messages_eus [ 33%] Building CXX object move_basic/CMakeFiles/move_basic.dir/src/obstacle_detector.cpp.o [ 66%] Building CXX object move_basic/CMakeFiles/move_basic.dir/src/move_basic.cpp.o [100%] Linking CXX executable /intel/euclid/euclid_ws/devel/lib/move_basic/move_basic CMakeFiles/move_basic.dir/src/obstacle_detector.cpp.o: In function ObstacleDetector::range_callback(boost::shared_ptr<sensor_msgs::Range_<std::allocator<void> > const> const&)': obstacle_detector.cpp:(.text+0xd1c): undefined reference tovoid tf2::fromMsg<geometrymsgs::Point<std::allocator >, tf2::Vector3>(geometrymsgs::Point<std::allocator > const&, tf2::Vector3&)' obstacle_detector.cpp:(.text+0xfa4): undefined reference to void tf2::fromMsg<geometry_msgs::Vector3_<std::allocator<void> >, tf2::Vector3>(geometry_msgs::Vector3_<std::allocator<void> > const&, tf2::Vector3&)' obstacle_detector.cpp:(.text+0x102b): undefined reference tovoid tf2::fromMsg<geometrymsgs::Vector3<std::allocator >, tf2::Vector3>(geometrymsgs::Vector3<std::allocator > const&, tf2::Vector3&)' CMakeFiles/move_basic.dir/src/obstacle_detector.cpp.o: In function ObstacleDetector::scan_callback(boost::shared_ptr<sensor_msgs::LaserScan_<std::allocator<void> > const> const&)': obstacle_detector.cpp:(.text+0x188d): undefined reference tovoid tf2::fromMsg<geometrymsgs::Point<std::allocator >, tf2::Vector3>(geometrymsgs::Point<std::allocator > const&, tf2::Vector3&)' obstacle_detector.cpp:(.text+0x1917): undefined reference to `void tf2::fromMsg<geometrymsgs::Vector3<std::allocator >, tf2::Vector3>(geometrymsgs::Vector3<std::allocator > const&, tf2::Vector3&)' collect2: error: ld returned 1 exit status move_basic/CMakeFiles/move_basic.dir/build.make:348: recipe for target '/intel/euclid/euclid_ws/devel/lib/move_basic/move_basic' failed make[3]: [/intel/euclid/euclid_ws/devel/lib/move_basic/move_basic] Error 1 CMakeFiles/Makefile2:671: recipe for target 'move_basic/CMakeFiles/move_basic.dir/all' failed make[2]: [move_basic/CMakeFiles/move_basic.dir/all] Error 2 CMakeFiles/Makefile2:683: recipe for target 'move_basic/CMakeFiles/move_basic.dir/rule' failed make[1]: [move_basic/CMakeFiles/move_basic.dir/rule] Error 2 Makefile:316: recipe for target 'move_basic' failed make: [move_basic] Error 2 Invoking "make move_basic -j4 -l4" failed

trainman419 commented 6 years ago

Cross-post: https://answers.ros.org/question/284071/move_basic-linker-problem-intel-euclid-ubuntu-1604/

jim-v commented 6 years ago

@mockbot We have been unable to come up with a solution to your problem. The package builds for us on X86_64, Raspberry Pi, and in the ROS build farm. Do you have problems building any other packages?

mockbot commented 6 years ago

ReHi

yes, I've successfully compiled rtabmap and some other small PKGs with catkin_make.

Hint: at this Intel Euclid System I cannot compile dnn_detect, too. Possible a problem with OpenCV version ? This Intel beast seems not to be a normal X86_64 ;-(

Thanks for your friendly response Cheers Chrimo

rohbotics commented 5 years ago

Closing due to age and weird platform bugs.

Hope it all worked out well