关于ROS编译包中出现的链接错误解决方法

关于ROS中编译功能包出现的链接错误解决方法

问题

Ubuntu16.04以及对应的版本,编译PROBOT_Anno出现了错误主要错误如下

make[1]: *** [PROBOT_Anno/probot_demo/CMakeFiles/moveit_revise_trajectory_demo.dir/all] Error 2
/opt/ros/kinetic/lib/libresource_retriever.so: undefined reference to `curl_easy_setopt@CURL_OPENSSL_3'
/opt/ros/kinetic/lib/libresource_retriever.so: undefined reference to `curl_easy_perform@CURL_OPENSSL_3'
/opt/ros/kinetic/lib/libresource_retriever.so: undefined reference to `curl_easy_cleanup@CURL_OPENSSL_3'
/opt/ros/kinetic/lib/libresource_retriever.so: undefined reference to `curl_global_init@CURL_OPENSSL_3'
/opt/ros/kinetic/lib/libresource_retriever.so: undefined reference to `curl_easy_init@CURL_OPENSSL_3'
/opt/ros/kinetic/lib/libresource_retriever.so: undefined reference to `curl_global_cleanup@CURL_OPENSSL_3'
collect2: error: ld returned 1 exit status

这个问题通常是由于没有正确设置ROS工作空间或者没有正确配置CMakeLists.txt文件导致的。下面是一些可能的解决方法: 1. 确保你已经正确设置了ROS工作空间。你可以通过在终端中输入以下命令来检查: ``` echo $ROS_PACKAGE_PATH ``` 这个命令应该返回你的ROS工作空间所在的路径。如果没有返回任何内容,那么你需要设置你的ROS工作空间。你可以通过以下命令来设置: ``` source /opt/ros/<distro>/setup.bash mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make source devel/setup.bash ``` 这个命令将会创建一个名为 "catkin_ws" 的ROS工作空间,并在其中创建一个名为 "src" 的文件夹来存放你的ROS软件包。 2. 确保你的CMakeLists.txt文件已经正确配置。你的CMakeLists.txt文件应该包含以下两行: ``` find_package(catkin REQUIRED COMPONENTS ...) catkin_package() ``` 其中 "catkin REQUIRED COMPONENTS ..." 用于查找你的ROS软件包依赖项,并将它们添加到构建中。 "catkin_package()" 用于声明你的ROS软件包是一个catkin软件包。 3. 确保你已经正确地运行了 "catkin_make" 命令。在你的ROS工作空间的根目录下,运行以下命令: ``` catkin_make ``` 这个命令将会编译你的ROS软件包,并生成一个 "devel" 文件夹。确保你在每次修改了CMakeLists.txt或者其他源文件后都要运行这个命令。 希望这些解决方法能够帮助你解决问题。如果问题仍然存在,请提供更多细节以便我能够更好地帮助你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值