Vins-mono 找不到 <ceres/rotation.h>的问题

今天编译Vins-mono,执行完catkin_make 后,报了一堆错误,很多都类似如下的错误:

In file included from /media/samsung/data/hanlun/code/catkin_ws_vins/src/VINS-Mono-master/ar_demo/src/ar_demo_node.cpp:23:0:

/media/samsung/data/hanlun/code/catkin_ws_vins/src/VINS-Mono-master/camera_model/include/camodocal/camera_models/CataCamera.h:7:10: fatal error: ceres/rotation.h: 没有那个文件或目录  #include <ceres/rotation.h>

上面显示CataCamera.h找不到rotation.h,采用locate rotation.h 定位发现,确实存在这个文件,安装ceres的安装目录也没有问题。

因此对 camera_model/ 下面的camkelist做了如下修改,增加了ceres库的依赖,

改动如下:

# set(EIGEN_INCLUDE_DIR "/usr/local/include/eigen3")
set(Ceres_DIR "/usr/local/Ceres-1.14/lib/cmake/Ceres/")
set(CERES_INCLUDE_DIR "/usr/local/Ceres-1.14/include")
find_package(Ceres REQUIRED)
#include_directories(${CERES_INCLUDE_DIRS}"/usr/local/Ceres-1.14/include")

include_directories(
    ${catkin_INCLUDE_DIRS}
    ${CERES_INCLUDE_DIRS}
    ${CERES_INCLUDE_DIR}
    )
target_link_libraries(camera_model ${Boost_LIBRARIES} ${OpenCV_LIBS} ${CERES_LIBRARIES})

然后再切换到ros管理的space目录,执行 catkin_make 

问题依然如此,烦不胜烦。

既然如此我单独编译camodocal 模块试一试,首先切换到这个文件夹下面:

mkdir build

cd build

cmake ..

make -j4

竟然编译过了,竟然编译过了。采用catkin_make 无法编译通过,但是单独编译这个包却能编译过。究竟什么原因吗,我们再仔细观察报错,

In file included from /media/samsung/data/hanlun/code/catkin_ws_vins/src/VINS-Mono-master/ar_demo/src/ar_demo_node.cpp:23:0:

/media/samsung/data/hanlun/code/catkin_ws_vins/src/VINS-Mono-master/camera_model/include/camodocal/camera_models/CataCamera.h:7:10: fatal error: ceres/rotation.h: 没有那个文件或目录  #include <ceres/rotation.h>

这个报错提示的是,在编译ar_demo模块的时候,报的这个错误。也就是说,在编译ar_demo 的时候,ar_demo_node.cpp 文件依赖/camera_model/include/camodocal/camera_models/CataCamera.h,而 CataCamera.h 找不到rotation.h.

got it !!!!!!

在编译ar_demo_node.cpp 的时候需要告诉camkelist ceres/rotation.h文件在那里,因此应该在ar_demo下面的camkelist里面配置ceres,而不应该在camodocal里面配置ceres。

同样,任何需要CataCamera.h 的文件,需要在camkelist里面配置ceres,cmake 会自然而然的找到rotation.h。

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值