linux下從源碼開始編譯安裝google ceres solver

由於在學校的電腦沒有管理員權限,不能直接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加入搜索路徑裏面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章