Tuesday, November 16, 2010

VSでCGALを読み込んでコンパイルが通るまで

CGALを使ったプログラムのビルドが通らない原因はCGALのインストールがうまくいっていないことだと思います.私も結構苦労しました.2時間くらい調べたりしてようやくわかった感じです.ですので,ここでは,CGALが本当にインストールできたかをテストする方法を記述します.
下で示す手続きでビルド(コンパイル)を実行して通れば,CGALのインストールができていると言えます.逆にビルドが通らなかったら,CGALのインストールができていないと言えます.
ここではVisual studio 2010で実験しますので,ほかの開発環境ではどうなのか知りません.でも,だいたい似たようなものだと予想します.

さて,テスト用の手続きですが,ざっくりいうと次の5ステップです.
1 プロジェクトの作成
2 ソースのコピぺ
3 インクルードディレクトリーの設定
4 ライブラリディレクトリーの設定
5 ビルド
以上です.

1 プロジェクトの作成
VSではまず,プロジェクトを作成しなければビルドも何もできません.
ということで,作ります.
ここではテストなので,win32コンソールアプリケーションを選びます.
で,何も考えずに,完了です.





2 ソースのコピぺ
次にソースのコピペですが,こんなものは何でもいいので,CGALのサンプルからコピーして,貼り付けます.
ここでは,私がこれから着手するサブディビジョンのテスト用に,3D Surface Subdivision Methodsのサンプルをとってきます.



赤い波下線があり,コンパイルエラーが起こることがばっちりわかります.

3 インクルードディレクトリーの設定
次にプロジェクトのインクルードディレクトリーを設定します.
手順は,プロジェクトのプロパティを開いて,「C/C++」→「全般」→「追加のインクルードディレクトリ」にCGALのインクルードディレクトリとboostのインクルードディレクトリを追加します.



ここでのディレクトリは環境に依存するので,適宜調整してください.

4 ライブラリディレクトリーの設定
インクルードディレクトリー同様,リンカーの設定として,ライブラリを設定します.
手順は,プロジェクトのプロパティを開いて,「リンカー」→「全般」→「追加のライブラリディレクトリ」にCGALのライブラリとboostのライブラリを追加します.



これもインクルードディレクトリの設定と同様に,適宜調整してください.
この例では,デバック版を設定していますが,リリース版でビルドする場合は,リリース版を設定します.

5 ビルド
以上で準備は整いました.
ビルドします.



赤い波下線も消え,ログからビルドが正常終了したことがわかります.
これが確認できれば,CGALのインストールは成功しています.

もし,以上の手続きで,エラーが出るようでしたら,失敗しています.
経験上,失敗の例として,CMAKEを実行していない,CMAKE後にコンパイルしていない,CMAKEがミスってる,インストールしたboostのバージョンが悪い,そもそも必要な他のライブラリをインストールしていない等々です.


ユーザー名がKSakuraiってなっていますが,そのあたりは気にせず,無意味に特定しようとか思わないでください.

1 comment:

Anonymous said...

詳しい方法ありがとうございます。
もう一度一から入れなおしてみようと思います。