CeresSolverをUbuntu16.04にインストールする。
Google製の数値最適化ライブラリCeresSolverをUbuntuにインストールする。
環境
- Ubuntu16.04
流れ
ほとんど公式に書いてある通りです。簡単です。
- 依存関係のインストール
- ソースのダウンロード、展開
- ビルド、インストール
- 実行
依存関係のインストール
パッケージを最新にして、
CMake、google-glog + gflags、BLAS & LAPACK、Eigen3、SuiteSparse and CXSparseをインストール。
sudo apt-get update sudo apt-get upgrade sudo apt-get install cmake sudo apt-get install libgoogle-glog-dev sudo apt-get install libatlas-base-dev sudo apt-get install libeigen3-dev sudo apt-get install libsuitesparse-dev
ソースのダウンロード、展開
ここからソースをダウンロード。下記コマンドで展開。
tar zxf ceres-solver-1.12.0.tar.gz
ビルド、インストール
ビルド用のディレクトリを作ってCMakeでMakefileを作りビルド。
mkdir ceres-bin cd ceres-bin cmake ../ceres-solver-1.12.0 make make test
make testが正常に通ればビルド完了。
sudo make install
でインストール。
実行
適当にサンプルをコンパイルしてみます。
【参考URL】
参考URLからサンプルコードをお借りして、main.cppという名前で保存します。
以下のコマンドでコンパイル。
g++ main.cpp `pkg-config --cflags eigen3` `pkg-config --libs libglog` -lgflags -lceres -lpthread -fopenmp -lcholmod -lblas -llapack -lcxsparse
コンパイルのリンカーオプションが多く、pkg-configが使えるものと使えないものがあって少しハマりました。
自分の環境だとgflagsだったかのパスが通ってないなどでコンパイルが通リませんでした。
その場合は下記のようにして、LD_LIBRARY_PATH にgflagsのライブラリのパスを追加して下さい。
環境変数 LD_LIBRARY_PATH に /usr/lib/x86_64-linux-gnu を追加するため.bashrcに下記を追加。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu
.bashrcを読み直し。
source ~/.bashrc