GLFW3 を VC2005EE で使う

2014年08月28日 ― [ 日記/コンピュータ/プログラム ]

OpenGLを使うためのライブラリの一つ、GLFW。そのバージョン3をVisual C++ 2005 Express Editionで使えるようにするための作業の記録。

環境はWindows 7 Proの32ビット版。

cmake のインストール

どうもGLFWのバイナリは新しい方から数えて二つのバージョン用にしか用意してくれないらしい。今の最新版3.0.4では2012と2013用しかない。よって自分でコンパイルすることになる。

コンパイルを手動でするのは面倒そうだが、支援ソフトのcmakeが使えるようになっているので結構楽に行く。

まずはcmakeをインストール。

公式サイトに行ってインストーラを落としてくる。

インストールの際には、環境変数Pathにcmakeの場所を追加するか聞いてくるので、これは追加するように設定する。

(但し、私の場合はPathが長すぎて設定に失敗したという旨の警告がでてきたので手動で追加した。初期設定なら追加するのは"C:\Program Files\CMake\bin")

ここで、コマンドプロンプトを開いて、"cmake"とコマンドを打った時に文字が流れれば成功。見つからないなどと言われる場合は失敗している。環境変数がきちんと設定されているか確認するべし。

GLFW のコンパイル

公式サイトからソースのZIPを持ってきて適当な場所(とはいってもずっと置いておけるような場所にするべき)に解凍する。

このフォルダ(名前は「glfw-3.0.4」など)を以下では「(GLFWのルートフォルダ)」と書くことにする。

(GLFWのルートフォルダ)の中にbuiltというフォルダを作る。

「Visual Studio 2005 コマンド プロンプト」(スタートメニューの「Visual C++ 2005 Express Edition」の中から起動できる)を管理者権限で起動。cdコマンドで先程作ったbuiltフォルダに移動する。

そこで"cmake .."(ピリオドは2つ。一個上のフォルダを指す)と入力、実行するとbuiltフォルダの中にいろいろなファイルが生成される。

(私はここで散々「No CMAKE_C_COMPILER could be found.」というエラーメッセージに悩まされた。これは試行錯誤の結果、上で書いたように、普通のコマンドプロンプトではなく「Visual Studio 2005 コマンド プロンプト」を管理者権限で実行するという方法で回避できた。どちらがキーになっていたのかはよく分からない)

生成されたファイルの中に「GLFW.sln」があるはずなので、これをVC2005で開く。たくさんのプロジェクトが並んでいるが、その中から「glfw」を選んでそれだけをビルドすれば良い。(他のはサンプルや動作確認用のプログラム)

(GLFWのルートフォルダ)\built\src\debug(又はrelese)にglfw3.libが出来上がる。これでglfwのコンパイルは完了。

GLFW を使ってみる

いつものようにVCで新規プロジェクトを作る。

このときは空のコンソールアプリケーションに設定する。

main.cppをつくり、http://www.glfw.org/docs/3.0/quick.htmlの一番下にあるサンプルコードを入力する。

以下、GLFWを使えるように設定する。

まず、VCの「ツール>オプション>プロジェクト及びソリューション>VC++ディレクトリ」の「インクルードファイル」に「(GLFWのルートフォルダ)\include」を追加する。

※「(GLFWのルートフォルダ)\include\GLFW」ではないことに注意。

次に、先程作ったglfw3.libをプロジェクトフォルダ(main.cppと同じフォルダ)にコピーしてくる。

その後、main.cppの先頭に、

#pragma comment(lib, "GLFW3.lib")
#pragma comment(lib, "opengl32.lib")

の二行を追加する。

これでビルド→実行すると、コンソールウインドウとともに黒い窓が開き、そこで色相環みたいなものが回るプログラムが動く。

これでとりあえず動作確認は完了。