您的位置:首页 > 运维架构 > Linux

linux下从源码开始编译安装google ceres solver

2016-02-13 05:00 591 查看
由于在学校的电脑没有管理员权限,不能直接apt-get 安装。折腾了一天,终于搞定。

首先这里列举了所有需要的dependencies。 http://ceres-solver.org/building.html#dependencies
好在大部分依赖库都有了,只差eigen, gflags和glog。所以现在就是手动安装它们和ceres。

手动安装gflags和glog:

# glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
# lmdb
git clone https://github.com/LMDB/lmdb cd lmdb/libraries/liblmdb
make && make install

注意,请注意这时候使用的编译器一定要和之后ceres使用的一致!否则会报各种错误。比如,undefined reference to std::__cxx11::basic_string .........

手动安装ceres。

一般会自动找到BLAS/LAPACK这些的头文件和库。自己需要手动设置gflags和glog的位置。

cmake -DGFLAGS_INCLUDE_DIR=xxxx -DGFLAGS_ILIBRARY=xxxx/yyyy.so -DGLOG_INCLUDE_DIR=xxxx -DGLOG_LIBRARY=xxxx/yyyy.so 

make DESTDIR=xxxx install

最后在使用的时候,要指定编译器选项 “-fopenmp“,否则找不到 OpenMP库的位置。并把glog gflags eigen库的include 和library path加入搜索路径里面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: