一.编译环境

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的更多相关文章

  1. Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)

    Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...

  2. Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件)

    Ubuntu16.04下编译OpenCV2.4.13静态库(.a文件) https://blog.csdn.net/woainishifu/article/details/79712110 我们在做项 ...

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

    官网有源代码和配置教程,地址是 https://github.com/raulmur/ORB_SLAM2 1 安装必要工具 首先,有两个工具是需要提前安装的.即cmake和Git. sudo apt- ...

  4. ubuntu16.04下编译安装vim8.1

    之前写过一篇centos7下编译安装vim8.0的教程,ubuntu16.04相比centos7下安装过程不同在于依赖包名字的不同,其余都是一样.下面给出ubuntu16.04编译安装vim8.0需要 ...

  5. Ubuntu16.04下编译android6.0源码

    http://blog.csdn.net/cnliwy/article/details/52189349 作为一名合格的android开发人员,怎么能不会编译android源码呢!一定要来一次说编译就 ...

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

    - youcompleteme原话:On Ubuntu 16.04, Python support was not working due to enabling both Python2 and P ...

  7. [环境配置]Ubuntu16.04下编译安装gcc6.3.0

    上一篇的SVS要用gcc6.3编译,否则结果不正确,本来以为gcc很好装,结果发现用apt-get安装gcc6只能安装6.5版本,代码作者奇特的要求只能用gcc6.3,没办法只能用源码装了,期间碰见了 ...

  8. ubuntu16.04下编译安装OpenCV

    一: 预先配置 为使OpenCV的安装在编译时更完备,预先安装好所有的开发平台: 二:编译OpenCV 在OpenCV官网下载UNIX的源码包: 安装一下软件: sudo apt-get instal ...

  9. Ubuntu16.04下 编译安装 Tensorflow

    安装bazel sudo ./bazel***.sh 输入bazel version 检查是否安装. 编译tensorflow 1)./configure 除了选择支持cuda是y,其余的都选择n. ...

随机推荐

  1. mysql 数据库的操作

    1.数据库的查看 1)查看mysql中所有的数据库    "show databases;" mysql> show databases; +---------------- ...

  2. (3.3)mysql基础深入——mysql启动深入分析

    基础:(2.1)学习笔记之mysql基本操作(启动与关闭) 0.mysql启动的 3种方式 (1)mysql.server (2)mysqld_safe (3)mysqld 1.启动分析 [1.1]概 ...

  3. python2与python3之间的主要区别

    python2与python3之间的主要区别 print py2:print语句,语句就意味着可以直接跟要打印的东西,如果后面接的是一个元组对象,直接打印 py3:print函数,函数就以为这必须要加 ...

  4. hdu1251(统计难题)

    这题就是一个字典树的模板题 统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Othe ...

  5. edgeR使用学习【转载】

    转自:http://yangl.net/2016/09/27/edger_usage/ 1.Quick start 2. 利用edgeR分析RNA-seq鉴别差异表达基因: #加载软件包 librar ...

  6. AngularJS 模型

    ng-model 指令将HTML 控制器(input, select, textarea)的值 和 应用程序数据进行绑定. ng-model 指令 ng-model 指令可以将输入域的值与 Angul ...

  7. matplotlib —— 调整坐标轴

    import matplotlib.pyplot as plt import numpy as np # 绘制普通图像 x = np.linspace(-1, 1, 50) y1 = 2 * x + ...

  8. javascript按字节截取标题中字符串

    在网页展示中经常会碰到,标题过长,需要截取字符串,用CSS的实现的话各种兼容问题,下面为大家介绍下javascript如何按字节截取字符串 做为一个前端开发人员在网页展示中经常会碰到,标题过长,需要截 ...

  9. yii2模板

    GridView 小部件在开发中常用的功能及技巧.持续更新中.... 数据网格或者说 GridView 小部件是Yii中最强大的部件之一.它有一个属性名叫 dataProvider ,这个属性能够提供 ...

  10. Object-C-Foundation-NSNuber

    NSNumber 是一个数值类型封装起来的数值. 装箱:基础类型->对象类型 NSNumber *number=[NSNumber numberWithInt:12]; 拆箱:对象类型-> ...