ubuntu16.04下编译ceres-solver

时间:2024-10-28 11:36:08

一.编译环境

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