OpenCASCADE 6.6.0 をビルドする。
OpenCASCADE 6.6.0 がリリースされて数ヶ月経ちますが、ようやく自宅の環境でもビルドする暇が出来たので手順を書いておきたいと思います。
手順と言っても、ソースコードを落としてきて make するだけなので、すごく簡単です。
OpenCASCADE 6.6.0 のビルド
うちの環境は相変わらず Debian 7.0 の x86 環境ですので、その環境を前提として書いています。
まず、公式サイトのダウンロードページより、6.6.0 の樽玉を落としてきます。ここでは、/tmp/occ640 を作業ディレクトリにしますので、そこに落とします。ダウンロードの際は、公式サイトにユーザ登録する必要があります。
ダウンロード後、次のコマンドを実行します。
cd /tmp/occ640
tar zxvf OpenCASCADE660.tgz
cd ros
./build_configure
#configure が生成される
./configure --enable-data --enable-algo --enable-vis --enable-caf --enable-dxe --enable-draw \
--with-tbb-include=/usr/include/tbb --with-tbb-library=/usr/lib --with-freeimage=/usr/include \
--with-gl2ps=/usr/include
configure にビルドするコンポーネントと OpenCASCADE が利用しているライブラリのパスを指定しています。何も指定しなくても最低限の構成でビルドすることは出来ますが、最低限の構成だと IGES の読み書きすらまともにできないので、全ビルドするように指定しています。
./configure を実行する際、ログの最後のほうに出てくるレポートを参考にしてください。
##3rdparty mandatory products
freetype : yes
tcltk : yes
##3rdparty optional products
gl2ps : yes
freeimage : yes
tbb includes : yes
tbb libraries : yes
qt : no (--with-qt=DIR option was not defined)
Component Build
FoundationClasses yes
ModelingData yes
ModelingAlgorithms yes
Visualization yes
ApplicationFramework yes
DataExchange yes
Draw yes
私の場合、サンプルとして付属する Qt プロジェクトでのみ利用されている「qt」の部分以外は、全て有効にしました。freetype、tcktk が欠落していると、Component の Visualization 以下のビルドができません。tbb は Intel の CPU で効率的にマルチスレッドを実現するためのライブラリです。
参考までに、私の Debian では次のパッケージをインストールしました。
sudo aptitude install libxmu-dev libfreetype6-dev
sudo aptitude install tcl-dev tk-dev
sudo aptitude install libgl2ps-dev libfreeimage-dev libtbb-dev
それぞれの開発パッケージに含まれるヘッダファイル、ライブラリファイルは、sudo dpkg -L パッケージ名 で確認することができます。これを基に、configure オプションの --with-tbb-include= といったオプションを指定します。
どの Component が必要か取捨選択できるようになるまでは、とりあえず全部動くようにしておくのが無難でしょう。上の configure のレポートのようになったら、後は make するだけです。
make
ちなみに、最後の make は非常に時間がかかります。私の環境(core i5/x86、SSD、シングルスレッドビルド)で、396分かかりました。
ビルド後のチェック
ビルドが完了したら、そのまま sudo make install してもいいのですが、コワイのでまずちゃんと使えるかチェックします。
正常にビルドができていれば、共有ライブラリは ros/adm/lin/amk//.libs/lib.so に生成されているはずです。また、ヘッダファイルは ros/inc に格納されているので、次のようにオプションを指定すれば、OpenCASCADE を利用したアプリケーションのビルドをすることが出来ます。
cd ros
mkdir mysrc
cd mysrc
vim test.cpp
cat test.cpp
#include <stdio.h>
#include "Standard_Boolean.hxx"
// サンプルプログラム
int main()
{
Standard_Boolean n = Standard_True;
printf("%d\n", n);
return 0;
}
g++ -lTKernel -I/tmp/occ660/ros/inc -L/tmp/occ660/ros/adm/lin/amk//.libs test.cpp
LD_LIBRARY_PATH=/tmp/occ660/adm/lin/amk//.libs ./a.out
1
OpenCASCADE で利用される基本型 Standard_Boolean を用いたサンプルプログラムをビルドし、実行した模様です。最終行のように「1」が表示されれば、OpenCASCADE が利用できるようになっています。
インストール
正常に使えている事が確認できたら、次のコマンドでインストールします。
make install
これでライブラリは /usr/local/lib、ヘッダファイルは /usr/local/inc に格納されます。また、DRAWEXE といった実行ファイルが /usr/local/bin に設置されます。
最後に、OpenCASCADE のサンプルプロジェクトなどで ros ディレクトリ以下のファイルを利用しますので、作業ディレクトリを
mv /tmp/occ660 /opt/
しておき、$HOME/.profile に $CASROOT=/opt/occ660/ors を追記しておきます。
Windows でのビルド
Windows における OpenCASCADE は、標準ビルド環境が Microsoft Visual Studio のソリューションファイルとして提供されている為、前項のような開発者の環境に合わせた条件付きコンパイルがやりづらくなっています。基本的な手順は、6.5.4 の手順と変わりません。