/usr/bin/ld: /home/sparks/xarm_ws/devel/lib/libxarm_hw.so: undefined reference to `xarm_api::XArmDriver::init(ros::NodeHandle&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool)' collect2: error: ld returned 1 exit status make[2]: *** [xarm_ros/xarm_controller/CMakeFiles/uf_ros_controller.dir/build.make:127:/home/sparks/xarm_ws/devel/lib/xarm_controller/uf_ros_controller] 错误 1 make[1]: *** [CMakeFiles/Makefile2:6948:xarm_ros/xarm_controller/CMakeFiles/uf_ros_controller.dir/all] 错误 2 make[1]: *** 正在等待未完成的任务.... [100%] Linking CXX executable /home/sparks/xarm_ws/devel/lib/xarm_controller/xarm_combined_traj_controller /usr/bin/ld: /home/sparks/xarm_ws/devel/lib/libxarm_hw.so: undefined reference to `xarm_api::XArmDriver::init(ros::NodeHandle&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool)' collect2: error: ld returned 1 exit status make[2]: *** [xarm_ros/xarm_controller/CMakeFiles/xarm_combined_traj_controller.dir/build.make:167:/home/sparks/xarm_ws/devel/lib/xarm_controller/xarm_combined_traj_controller] 错误 1 make[1]: *** [CMakeFiles/Makefile2:6576:xarm_ros/xarm_controller/CMakeFiles/xarm_combined_traj_controller.dir/all] 错误 2 make: *** [Makefile:141:all] 错误 2 Invoking "make -j12 -l12" failed
时间: 2023-12-24 16:05:58 浏览: 172
这个错误是由于链接器无法找到 `xarm_api::XArmDriver::init` 函数的定义而引起的。请确保你的代码中包含了正确的头文件,并且链接器能够找到相关的库文件。另外,还需要检查是否正确地初始化了 `ros::NodeHandle` 对象以及其他必要的参数。如果这些都没有问题,可能需要检查你的库文件是否正确编译并位于正确的位置。
相关问题
/usr/bin/ld: /home/bridge/leg_debug/devel/.private/legged_unitree_hw/lib/liblib_go1.so: undefined reference to
/usr/bin/ld: /home/bridge/leg_debug/devel/.private/legged_unitree_hw/lib/liblib_go1.so: undefined reference to 是一个链接错误,意味着编译器无法找到某个函数或变量的定义。这通常是由于缺少库文件或库文件版本不兼容导致的。解决此问题的方法可能包括:
1. 确保所有必需的库文件都已正确安装,并且版本与代码兼容。
2. 检查编译选项和链接选项是否正确设置。
3. 检查代码中是否存在拼写错误或语法错误。
4. 如果使用的是第三方库,请确保已正确链接该库。
5. 如果以上方法都无法解决问题,请尝试使用调试器进行调试,以确定问题的具体原因。
阅读全文