1.Visual Studio 2015のインストール
説明を割愛します。
2.GLUTのインストール
参考としたサイト(英語、日本語)には、Nate Robins 氏のサイトを見てくださいと書いてありますが、ありません。いつのことからないんですかね?ここを開けば、DLLが手に入り簡単とありますが、ありませんので仕方ありません。コンパイルします。
2.1 ソースの入手
freeglut のソースファイルの入手。Versionは、2.8.1がいいです。3.0.0は、VisualStudio用のファイルがなくなっていました。
2.2 プロジェクトファイルの実行
展開後、
VisualStudio->2012->freeglut.vcxproj
を実行。(これで良いのかわからなかったが、最新のものをとりあえず選択)
その後、「プロジェクトとソリューションの変更」をレビューが出るが無視。
2.3 ビルド
・「ビルド」のメニューにある「構成マネージャ」を開く。
・「アクティブソリューションの構成」を「Debug」から「Release」へ変更
・「アクティブ ソリューション プラットフォーム」を 32 ビット版のライブラリを作成するなら "Win32"を選択。64 ビット版のライブラリを作成するには,"x64" を選択。(とりあえず私のマシンは64Bit機なので64を選択したとし、この後を進める。)
・メニューの「ビルド」から「freeglut のビルド」を選択。コンパイル開始。
2.4 コピー
<ソースのフォルダ>\freeglut-2.8.1\lib\x64
の中にある、freeglut.lib と freeglut.dll というファイルを, それぞれ次の場所にコピー。
freeglut.lib:
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64
freeglut.dll:
C:\Windows\System32
<ソースのフォルダ>\freeglut-2.8.1\include\GL
の中にある、glut.h freeglut.h freeglut_std.h freeglut_ext.h というファイルを, 次の場所にコピー。
C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl
注(20150627追記):
今回のパスは、環境変数を設定しなくても良い設定なので、freeglut.lib と freeglut.dllについては、コンパイルした場所に置いておき、3のプロジェクトの作成において「プロパティ->linker->Additional Library Directory」でそのフォルダを設定しても可。
また、同様にIncludeも直接接手しても可だが、元々Windows Kitsにglのパスが設定されているため、2重にでることになるので注意。Windows Kitsではフォルダ名がgl(小文字)だが、freeglutでは大文字のため、Visual studioでincludeを入力した時に大文字と小文字の二つがでる。まぁ、統一するために私は大文字で使っている。
(でも、Windows Kitにわざわざ最初からglのパスがある(GL.hとGLU.hしかないが)のに、ライブラリがないんだろ?どこかにあるのかな?どなたか知っていたら教えてください。)
3. プロジェクトの作成
「ファイル」->「新規作成」->「プロジェクト」
「Visual C++」の中から「Win32 コンソール アプリケーション」
引用(日本語)
freeglut あるいは GLUT 3.7.2 以降と Visual Studio の組合わせなら, ソースファイルで GL/glut.h を #include することで, 自動的に freeglut.lib または glut32.lib, glu32.lib, および opengl32.lib がリンクされます (山下 真 様ご教示ありがとうございました). したがって, このままビルドすれば実行ファイルができあがるはずです.もしうまくいかないようなら, プロジェクトのプロパティ (Alt+F7) を開き, 「構成プロパティ」の「リンカ」の「入力」を選んで, 「追加の依存ファイル」に freeglut.lib または glut32.lib, glu32.lib, および opengl32.lib の三つを追加してください. このほか, 「C/C++」の「プリプロセッサ」を選んで, 「プリプロセッサの定義」に WIN32 が含まれていることを確かめてください (無いことは無いと思いますが). もしなければ追加してください.
4. ウィンドウを開く(コンパイル)
・以下のソースを書いてね。
#include "stdafx.h"
#include <GL/glut.h>
void display(void)
{
}
int _tmain(int argc, _TCHAR* argv[]) // Visual C++ Style
{
glutInit(&argc, argv);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
・コンパイル前に「ビルド」のメニューにある「構成マネージャ」を開き、「アクティブ ソリューション プラットフォーム」を"x64" を選択。(ライブラリにX64を選択したので、こうしないと動かない。)
・コンパイル&起動
「デバック」->「デバックの開始」
画面が無事出たら成功!
追記:
コンソール画面がでて嫌なら下記コードを追加
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
・Window/Linux共用アプリのために、
コンソール画面が嫌になった上記のコードを追加すると、Linuxでは意味がないので、ifdefを使って分離する。また、main関数を変える(参考)。
#include "stdafx.h"
#include <GL/glut.h>
#ifdef __linux__
//linux code goes here
#elif _WIN32
// windows code goes here
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#endif
void display(void)
{
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
0 件のコメント:
コメントを投稿