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成功。