OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools

Windows平台搭建篇:
方式一:采用Win7 VS2013X64 +freeglut-2.8.1+glew-1.7.0+gltools进行搭建。搭建流程如下:
1.下载glew-1.7.0:根据自己电脑操作系统位数来选择下载64位还是32位版本的glew。这里还需要把glew的源码下载下来,因为后面的gltools制作静态库时需要用到该源码文件。下载如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第1张图片

2.安装glew-1.7.0:由于我电脑是64位操作系统,所以我下载的是glew-1.7.0-win64.zip。下载下来后解压该zip文件,并进行以下操作:

一.新建一个文件夹OpenGL SuperBible Library,然后将位于include文件夹下的GL文件夹复制到“OpenGL SuperBible Library\include”(我新建的新文件夹)。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第2张图片

二.将位于lib 文件夹下的 .lib 文件复制到“OpenGL SuperBible Library\lib“下。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第3张图片

三.将位于bin 文件夹下的 .dll 复制到 C:\Windows\System32目录中,如果是64位系统则放在SysWOW64目录。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第4张图片

3.下载freeglut2.8.1。将下载完毕的freeglut2.8.1进行解压,并将位于include文件夹下的GL文件夹复制到“OpenGL SuperBible Library\include“下。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第5张图片

4.生成freeglut静态库:生成流程如下所示:
一.用VS2013打开\freeglut-2.8.1\VisualStudio\2012\freeglut.sln项目文件。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第6张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第7张图片

二.将解决方案配置设置成Release_Static编译模式。如图所示 :

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第8张图片

此时配置属性也会自动调成Release_Static编译模式。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第9张图片

三.生成解决方案,此时会在freeglut-2.8.1\lib\x64生成一个freeglut_static.lib文件。最后将生成的freeglut_static.lib文件复制到“OpenGL SuperBible Library\lib“目录下。流程如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第10张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第11张图片

5.生成GLTools静态库:必须在glew和freeglut配置完毕后才能进行GLTools静态库的生成。生成过程如下所示:
一.下载GLTools源码工程:可以使用+svn从http://oglsuperbible5.googlecode.com/svn/trunk下载。也可以在csdn上面下载OpenGL超级宝典第五版源码。里面都包含有GLTools源码工程。
二.用vs2013新建一个win32静态库工程(它在Win32项目下),工程名为 GLTools ,记得去掉预编译头这个选项。如图所示:
OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第12张图片

三.将glew-1.7.0源代码工程下的src目录中的glew.c文件以及GLTools源码工程下的src目录中的文件(除了glew.c文件)添加到当前GLTools静态库工程中。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第13张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第14张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第15张图片

四.将GLTools源码工程下的include目录中头文件(除了GL目录下面的glew头文件)复制到“OpenGL SuperBible Library\include“下,否则GLTools静态库工程中的源码文件就会报找不到头文件错误。流程如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第16张图片

五. 在项目 -》属性 -》C/C++ -》预处理器 -》预处理器定义中添加 _CRT_SECURE_NO_WARNINGS。然后编译生成,编译成功后会在工程Debug目录下生成 GLTools.lib静态库文件。最后将该GLTools.lib复制到“OpenGL SuperBible Library\lib“下。流程如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第17张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第18张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第19张图片

6.运行测试工程:用vs2013创建一个Win32控制台程序。测试流程如下:
一.在项目 -> 属性 -> 链接器 -> 输入 -> 依赖项中添加gltools.lib,glew32s.lib并在忽略特定默认库中添加 LIBCMT MSVCRT。如图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第20张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第21张图片

到这里所有的include文件和lib文件均已经生成和拷贝完成(已经将生成好的相应文件打包上传,可直接下载使用,路径:https://download.csdn.net/download/j_d_c/11265230),“OpenGL SuperBible Library”中将包含如下目录和文件,如下所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第22张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第23张图片

二.将超级宝典第五版中的示例代码src\Chapter02\Triangle\Triangle.cpp添加到工程中,然后新建属性表并配置属性表,添加相应的include 和lib路径,如下图所示:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第24张图片

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第25张图片

直接编译运行成功后,即可得到一个三角形图案。核心代码如下:

// Triangle.cpp
// Our first OpenGL program that will just draw a triangle on the screen.

#include             // OpenGL toolkit
#include     // Shader Manager Class

#ifdef __APPLE__
#include           // OS X version of GLUT
#else
#define FREEGLUT_STATIC
#include             // 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;
}

 运行结果如下:

OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools_第26张图片

部分内内容参考自:https://blog.csdn.net/zjz520yy/article/details/81334722

 

你可能感兴趣的:(OpenGL)