Linux で TooL のビルド
【概要】
TooL は,OpenGL をもとに動く,OBJ 形式ファイル(Wavefront の obj ファイルと mtl ファイル)の読み込みと描画の機能を持つソフトウェアである.OBJ 形式のメッシュを読み込んで表示するビューワとして使えるほか,ソースコードが公開されているので,C++ のプログラムに組み込んで使うこともできる(ライセンスは GPLv2.利用条件は各自で確認すること).【目次】
前準備
インストールの前に,パッケージを最新の状態に更新しておくと,ビルド時のトラブルが減る.次のコマンドは,更新可能な全パッケージを更新する操作である(例は yum を使う Fedora 系ディストリビューションの場合).
yum check-update yum update
前もって決めておく事項
- 作業用ディレクトリ: /tmp(このページでは作業用ディレクトリを /tmp と書く)
前もってインストールしておくべきソフトウェア
次のソフトウェアをインストール済みであること.TooL のビルドには,C++ コンパイラ(gcc/g++),make,画像ライブラリ(JPEG,PNG,TIFF),SDL,Boost,OpenGL 関連のライブラリが必要である.
下記のように「yum install <パッケージ名>」でインストールできる.
yum install gcc yum install libtool yum install make yum install libjpeg* yum install libpng-devel yum install libtiff-devel yum install SDL-static yum install SDL_* yum install boost* yum install OpenGL*
TooL のソースコードのダウンロードと解凍
- TooL の Web ページを開く
- ソースコード(TooL-v0.2.5-src.tar.bz2)をダウンロードする.
- ダウンロードしたファイルを作業用ディレクトリ /tmp に置く.
- コンソール(端末)を起動する.
これ以降の作業は,コンソール(端末)で行う.
- ダウンロードしたファイルを展開(解凍)する.
cd /tmp mkdir TooL cd TooL tar -xvjf /tmp/TooL-v0.2.5-src.tar.bz2
ビルドとインストール
- OpenGL/glu.h などをインクルードできるようにするシンボリックリンクの設定
ソースコードが
OpenGL/glu.hのようなパスでヘッダを取り込む場合に備え,GLディレクトリ内にOpenGLという名前で自分自身を指すシンボリックリンク(別名)を作る.次は Fedora の場合の設定例である.cd /usr/include/GL ln -s . OpenGL
- すべての cpp ファイルの先頭に「#include "stable.pch"」を追加
プリコンパイル済みヘッダ
stable.pchを各ソースが取り込むよう,Sources ディレクトリ内のすべての .cpp ファイルの先頭に#include "stable.pch"を書き加える.次のシェルスクリプトは,各 .cpp ファイルの先頭にこの行を挿入する.cd /tmp cd TooL cd Sources for i in *.cpp; do echo $i echo "#include \"stable.pch\"" > $i.tmp cat $i >> $i.tmp cp $i.tmp $i done
- Makefile の作成
ビルド手順を記述した Makefile を Sources ディレクトリに作る.次は Fedora での例である.
CFLAGSにヘッダの検索先,LIBSにリンクするライブラリを指定している.CC=g++ CFLAGS=-I/usr/include/SDL -I/usr/include/GL LIBS=-L/usr/lib64 -lSDL_image -lSDL -lGLU -lGL -lboost_filesystem-mt -lboost_system-mt OBJS=Camera.o Exception.o Image.o KeyboardController.o Logger.o main.o Mesh.o MeshViewer.o MouseController.o MtlParser.o ObjMeshParser.o PolygonFace.o SceneObject.o State.o Texture.o Vertex.o WindowManager.o a.out: $(OBJS) $(CC) -o a.out *.o $(LIBS) .cpp.o: $(CC) $(CFLAGS) -c $<
- make の実行
Sources ディレクトリで make を実行してビルドする.
cd /tmp/TooL/Sources make
- make の結果の確認
エラーメッセージが出ないことを確認する.
ビューワ・プログラムが「a.out」というファイル名で生成される.
- ビューワ・プログラムのテスト実行
生成された a.out を実行する.テクスチャマッピングなどが正しく表示できることを確認する.
cd /tmp cd TooL Sources/a.out