さて、Windows7でVisualStudios C ++ 10をセットアップして、この本「OpenGL superbible 5th edition」のサンプルプログラムを実行できるようにしますが、GLToolsとfreeglutを中華なべにする際にいくつか
の大きな問題があります。これがすべてを設定する方法です。これまでのところ........................。
拳は私がオンラインになったこれらのステップに従いました:
最初にglutまたはfreeglutをダウンロードし、次にそれを解凍します。-これはhttp://www.starstonesoftware.com/OpenGL/
のzipファイルから入手しました。
freeglutフォルダーには、VisualStudio2008というフォルダーがあります。これに移動します。
freeglutというVSプロジェクトファイルがあるはずです。これを実行し、変換ウィンドウが表示されたら[完了]をクリックします。それからそれをコンパイルします、それが終わったときにそれが開始できないと言うなら、これは大丈夫です。
これで、同じフォルダーにDebugという新しいフォルダーが作成されます。これは、freeglutをコンパイルしたばかりです:)。
中にはfreeglut.dllがあります。これは、system32フォルダーまたはSysWOW64にそれぞれ入れる必要があります。
これに加えて、freeglutと呼ばれるファイルがあり、そのタイプはオブジェクトファイルライブラリになります。これは、VisualStudioのlibフォルダーに移動する必要があります。
次に、メインのfreeglutフォルダーに戻ります。Includeというフォルダがあるはずです。この中にGLと呼ばれるフォルダと2つのファイルがあります。これらは、VisualStudioのインクルードフォルダーにコピーする必要があります。
libフォルダーとIncludeフォルダーは、メインのVisual Studioフォルダー(私にとってはMicrosoft Visual Studio 10.0)にあるVCフォルダー内にあります。
そこに:)`
次に、次の手順に従ってGLToolsとfreeglutを設定しました。
これには、コンピューターの管理者権限が必要です。
私。すべてのfreeglutヘッダーファイル(.hで終わる)を次のフォルダーにコピーします:C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ include \ GL \
ii。すべてのGLToolsヘッダーファイル(.hで終わる)をC:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \include\にコピーします。
iii。すべてのfreeglutおよびGLToolsライブラリファイル(.libで終わる)ファイルをC:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \lib\にコピーします。
iv。GLTools.libをlibフォルダーにコピーした場合でも、プロジェクトをコンパイルするときにGLTools.libファイルを使用するようにVS2010に指示する必要がある場合があります。メニューオプションの[表示]→[プロパティマネージャー]から、プロパティマネージャーを開きます(これを行うには、開いているプロジェクトが必要です)。VS IDEの左側のペインが変更され、プロパティマネージャーが表示されます。これをサイズ変更して読みやすくすることができます。完全なリストが表示されていない場合はプロジェクトを展開し、Microsoft.Cpp.Win32.userリンクの1つをダブルクリックして、ユーザープロパティダイアログを開きます。プロパティマネージャーで、[リンカー]→[入力]を選択し、[追加の依存関係]をクリックします(以下を参照)。ポップアップ表示されるダイアログで「GLTools.lib」を追加し、これにfeeglut_static.libも追加しました。
さて、ついにこれが私が実行しようとしているコードです:
#include <GLTools.h> // OpenGL toolkit
#include <GLShaderManager.h> // Shader Manager Class
#ifdef __APPLE__
#include <glut/glut.h> // OS X version of GLUT
#else
#define FREEGLUT_STATIC
#include <GL/glut.h> // Windows FreeGlut equivalent
#endif
GLBatch triangleBatch;
GLShaderManager shaderManager;
///////////////////////////////////////////////////////////////////////////////
// Window has changed size, or has just been created. In either case, we need
// to use the window dimensions to set the viewport and the projection matrix.
void ChangeSize(int w, int h)
{
glViewport(0, 0, w, h);
}
///////////////////////////////////////////////////////////////////////////////
// This function does any needed initialization on the rendering context.
// This is the first opportunity to do any OpenGL related tasks.
void SetupRC()
{
// Blue background
glClearColor(0.0f, 0.0f, 1.0f, 1.0f );
shaderManager.InitializeStockShaders();
// Load up a triangle
GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f };
triangleBatch.Begin(GL_TRIANGLES, 3);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}
///////////////////////////////////////////////////////////////////////////////
// Called to draw scene
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
triangleBatch.Draw();
// Perform the buffer swap to display back buffer
glutSwapBuffers();
}
///////////////////////////////////////////////////////////////////////////////
// Main entry point for GLUT based programs
int main(int argc, char* argv[])
{
gltSetWorkingDirectory(argv[0]);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
glutInitWindowSize(800, 600);
glutCreateWindow("Triangle");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);
GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err));
return 1;
}
SetupRC();
glutMainLoop();
return 0;
}
そして最後に、これが私が受け取ったエラーです:
1>------ Build started: Project: Triangle, Configuration: Debug Win32 ------
1> Triangle.cpp
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(225): error C2144: syntax error : 'void' should be preceded by ';'
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(225): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(226): error C2144: syntax error : 'void' should be preceded by ';'
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(226): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(226): error C2086: 'int GLAPI' : redefinition
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(225) : see declaration of 'GLAPI'
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(227): error C2144: syntax error : 'void' should be preceded by ';'
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(227): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(227): error C2086: 'int GLAPI' : redefinition
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\gl\glu.h(225) : see declaration of 'GLAPI'
エラーC1003:エラーカウントが100を超えています。コンパイルの停止
これは永遠に続きます、そして私はそのような問題がどのように起こり得るか、そしてなぜそれがGLU.hで起こっているのか分かりません!私は本当に何が悪いのかわかりませんが、私はこの問題を1週間抱えていました...助けてください=)
ありがとう、そしてどんな質問でも気軽に!