配置eigen3和ceres为thirdparty

配置ceres为第三方库时,发现会需要依赖eigen3。这时如果eigen本地版本有冲突就会出现链接错误。

所以就将eigen3也做了第三方库。

首先需要将eigen3"安装"一遍,这样会自动生成*.cmake文件

cmake -D CMAKE_INSTALL_PREFIX=./build_lib ..
make install

比如上面就是把eigen3源码安装到./build_lib文件夹中。

后面在编译ceres时,将eigen的路劲做一个修改

set(Eigen3_DIR ${Ceres_SOURCE_DIR}/../Eigen/share/eigen3/cmake/)

上面就是在ceres和eigen的源文件在同一级目录下,所以做的相对路径。

 

需要注意的是,在cmakelist文件中,Eigen和Eigen3是不同的,如果cmake运行有问题,有可能是名字不对应。

最后要注意的是,如果是要将ceres做成self-contained的库,去除ceres对于glog的依赖是需要用勾选miniglog来实现的。

option(MINIGLOG "Use a stripped down version of glog." ON)

配置完ceres之后,也需要在ceres中创建build_lib文件夹并运行

cmake -D CMAKE_INSTALL_PREFIX=./build_lib ..
make install

将在build_lib新生成的include文件夹替换源码部分中自带的include文件夹

最后调用ceres的时候,需要将包含路径加上/ceres/include/ceres/internal/miniglog/

你可能感兴趣的:(配置eigen3和ceres为thirdparty)