ubuntu16.04下编译ceres-solver
一.编译环境
ubuntu16.04
二.准备工作之安装必要的库
2.1安装cmake
sudo apt-get install cmake
2.2 安装google-glog + gflags
sudo apt-get install libgoogle-glog-dev
2.3 安装BLAS & LAPACK
sudo apt-get install libatlas-base-dev
2.4 安装Eigen3
sudo apt-get install libeigen3-dev
2.5 安装SuiteSparse和CXSparse
sudo apt-get install libsuitesparse-dev (这个默认会使得ceres-solver被编译成静态库,但到目前为止要想将ceres-solver编译成动态库,需要将一个软件仓库加入到当前的源中,但是那个软件仓库到2018/2/5还没有提供16.04对应的版本,所以16.04不能编译成动态库,不过也有办法,自己打上patch,自行编译suitesparse这个库)
准备工作已经完毕,接下来开始编译ceres-solver
三.编译ceres-solver静态库
3.1 获取源码
wget ceres-solver.org/ceres-solver-1.13.0.tar.gz
3.2 解压
tar xvf ceres-solver-1.13.0.tar.gz
3.3 切换到源码目录
cd ceres-solver-1.13.0
3.4 创建编译目录
mkdir build
3.5 切换到编译目录
cd build
3.6 生成Makefile
cmake ../../ceres-solver-21.13.0
3.7 编译
make -j4
3.8 安装
make install
四.如果想编译自己写的测试程序需要指定如下参数进行编译
比如测试程序为test.cpp
g++ -fopenmp test.cpp -o test -rdynamic /usr/local/lib/libceres.a -lcholmod -llapack -lf77blas -lcxsparse -lglog -I/usr/loca/include -isystem /usr/include/eigen3 -I/usr/include/suitesparse