ubuntu16.04下编译ceres-solver

Posted Jello

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于ubuntu16.04下编译ceres-solver的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu16.04下编译vim with python support失败的原因

Ubuntu16.04下编译android6.0源码

Ubuntu16.04下编译安装及运行单目ORBSLAM2

在ubuntu16.04-32bits 下编译vlc和vlc-qt开源项目

Caffe实战一(环境准备及CPU模式下编译)

Ubuntu下编译Android版本的ffmepg so库及源码