配置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/