近日,参照此篇文章ubuntu16.04 ROS环境下配置和运行SVO配置并运行SVO时,到第(7)步编译svo时出现错误,错误信息很长,其实原因只有一个,如下:
fatal error: sophus/se3.hpp: No such file or directory
也就是说某个源文代码中没有找到sophus的头文件,出现链接错误.
解决办法:
参考博客:Sophus链接错误
找到CMakeLists,如下:
原因分析:安装Sophus时,有个lib文件“libSophus.so”会出现在/usr/local/lib/libSophus.so 时,libSophus.so 应该被链接到 Sophus_LIBRARIES, cmake没链接上。应该更改为:find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS} )
删除ros工作空间 catkin_ws 下的 build 文件夹,命令如下:find_package( Sophus REQUIRED )
set(Sophus_LIBRARIES libSophus.so)
include_directories( ${Sophus_INCLUDE_DIRS} )
(根据自己的工作空间修改对应路径)
重新编译rm -rf ~/catkin_ws/build/
cd ~/catkin_ws/
catkin_make