ubuntu18运行robslam2在ROS Melodic下,遇到的问题

1./usr/bin/ld: CMakeFiles/Stereo.dir/src/ros_stereo.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’
/usr/lib/x86_64-linux-gnu/libboost_system.so: error adding symbols: DSO missing from command line

解决方法: 修改Examples/ROS/ORB_SLAM2/文件夹下的CMakeLists.txt文件。
将其改成这样,多加一行-lboost_system,链接到这个库。

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
-lboost_system
)

2./usr/bin/ld: warning: libopencv_calib3d.so.2.4, needed by …/…/…/…/lib/libORB_SLAM2.so, may conflict with libopencv_calib3d.so.3.2
然后这两里是opencv2.4库文件: error adding symbols: DSO missing from command line
因为ros full安装,会装上opencv3.2的版本,果然发现这个和我自己的opencv2.4.13安装在一个文件夹下了,当初使用了这个命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local  -DENABLE_PRECOMPILED_HEADERS=OFF  -D CUDA_GENERATION=Kepler  ..
 我想着还可能是其他问题,没有找到相应的解决办法,最后想着把自定义的opencv2.4.13换一个路径安装。先找到之前的,sudo make uninstall 卸载,然后装到这个路径,/usr/local/opencv2.4.13/,安装好之后,编译./build_ros.sh成功。
引用提到了一种解决方法,即通过软链接将库文件放置在"/usr/local/lib/"目录下,然后使用ldconfig命令来使系统能够找到该库文件。具体的软链接命令如下:sudo ln -s $HOME/kimera_ws/build/pangolin/src/libpangolin.so /usr/local/lib/libpangolin.so。这样,系统就可以找到该库文件了。 引用是一个错误信息,提示找不到名为"lg2o_ext_csparse"的库文件。这种错误通常是由于库文件没有添加到ld的检索目录中导致的。解决方法是将该库文件添加到ld的检索目录中,可以通过软链接的方式将该库文件放置在正确的目录下。 引用也提到了类似的错误,即在软件编译时出现"cannot find -lxxx"或者".so undefined xxx"的错误。主要原因是库文件没有导入到ld的检索目录中。解决方法同样是将库文件添加到ld的检索目录中。 因此,根据引用的方法,您可以尝试将"/usr/local/bin/ld"无法找到的库文件放置到正确的目录下,并通过软链接的方式将其添加到ld的检索目录中,以解决该错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [/usr/bin/ld: cannot find -l 基本原理解释与解决方法](https://blog.csdn.net/boyhoodme/article/details/125097384)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [usr/bin/ld: cannot find XXX错误解决方法](https://blog.csdn.net/zhuquan945/article/details/79725201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值