環境
Ubuntu 18.04
OpenVDBの対象バージョン 6.1, 6.0, 5.2
OpenVDBは以下からクローンできます
https://github.com/AcademySoftwareFoundation/openvdb
この中にはopenvdb, openvdb_houdini, openvdb_mayaがありますが,この記事ではHoudiniをインストールせずにビルドを行うので,openvdbディレクトリ内のファイルのみを使います
また,Pythonモジュールのビルドは検証していないのでその点は各自でお願いします
ライブラリのインストール
INSTALLファイルに書いてある通り,必要なライブラリをインストールします
sudo apt install libboost-all-dev
sudo apt install libtbb-dev
sudo apt install libilmbase-dev
sudo apt install libopenexr-dev
sudo apt install zlib1g-dev
sudo apt install libblosc-dev
sudo apt install libjemalloc-dev
Boostはlibboost-iostreams-dev, libboost-system-devのみインストールすれば良いらしいですが,これについては自分はBoost関連を全ていれた状態(libboost-all-dev)でしか試したことがないので何とも言えません
あと,これは任意ですが,vdb_viewのビルドをするのであればGLFWのインストールが必要になります
Makefileの書き換え
Makefileでインストール先や先ほどインストールした各ライブラリのパスを指定します
一応例として載せておきますが,この辺はMakefileの指示に従って各自でお願いします
まずINSTALL_DIRのデフォルトが/tmp/OpenVDBになっているので,/usr/localなどにします
また,*_INCL_DIR, *_LIB_DIRも適宜変えます
今回使わないLOG4CPLUS_INCL_DIR, GLFW_INCL_DIR , PYTHON_VERSION, NUMPY_INCL_DIR, EPYDOC, DOXYGENはブランクにします
もしGLFWなどを入れている場合は対応するパスを指定してください
ここからが重要
このままビルドしようとすると
stdlib.h: No such file or directory
でエラーがでます
対処法はMakefileの-isystemを全て-Iに置換します
これでビルドが通ります
あと,ビルド時の出力がうるさいので
make -s -j4
とオプションを付けると良いです
ついでに,OpenVDBを用いたプログラムをビルドするときは
-lHalf -ltbb -lopenvdb
とリンクさせます
参考