VS2010/VS2012/VS2015下openGL环境配置(转)

这一生的挚爱 提交于 2021-01-14 08:08:14

按:按照下述博文,三个例子均成功。

https://blog.csdn.net/so_geili/article/details/51685005

 

请仔细阅读每一个字。 

       为了学习《OpenGL超级宝典(第五版)》必须配置OpenGL环境,正所谓工欲善其事必先利其器。翻阅了很多网上的配置教程,很多都有问题,但也有详细的精华教程,比如博客: http://www.zyh1690.org/build-opengl-super-bible-fifth-edition-development-environment/ 。尽管该教程很详细,但其中还是有些细节问题,博客中没有细说。配置OpenGL环境一定要细心、耐心。因为有一点疏忽都可能导致最终配置环境失败。本篇虽然是针对“win7 X64 +VS2010”环境的配置过程,但是我在VS2012/VS2015下也搭建成功了,VS2012/VS2015下配置OpenGL的原理也很简单,就是其中的Microsoft Visual Studio 10.0下要添加的文件变成Microsoft Visual Studio 12.0或Microsoft Visual Studio 15.0下添加相关的文件。

配置环境:

win7 X64 + Visua Studio 2010

win7 X64 + Visua Studio 2012

win7 X64 + Visua Studio 2015

所需要的配置文件及工具:

百度云盘下载地址

链接:http://pan.baidu.com/s/1kVsKUGJ  密码: xxqq

链接: http://pan.baidu.com/s/1slu9RK5 密码: asj8

下面正式开始搭建:>>>>>>>>>>>>>>>>>>>>>>>>分割线>>>>>>>>>>>>>>>>>>>>>>>>>分割线>>>>>>>>>>>>>>>>>>>>>>>>>

 

一、freeglut配置

 

打开 x:\x\freeglut-2.8.1\VisualStudio\2010\freeglut.sln 项目工程,(如果是配置VS2015,可以选择x:\x\....\2015\freeglut.sln 项目工程)

2

分别已Debug模式和Release模式生成解决方案。(只生成一个也可。建议在debug模式下编译,无需执行。如果运行弹出黑框,忽视即可。32位操作系统注意,最终在运行蓝宝书Chapter01\Block  的代码时,如果遇到freeglut_static.lib无法打开问题,应该选择Debug_Static模式重新编译,生成所需的freeglut_static.lib,添加到指定的文件夹中

会在 x:\x\freeglut-2.8.1\lib\x86 目录下看到生成的 .dll 和 .lib 文件,其中请把 Debug目录 中的 .dll 和 .lib 文件加上 _d 以便以后区分。如图:

3

 

 x:\x\freeglut-2.8.1\include\GL 文件夹下的 .h文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL 目录下,没有GL文件夹的要自己建

 x:\x\freeglut-2.8.1\lib\x86 文件夹下(以及Debug文件夹)的 .dll 文件复制到 C:\Windows\SysWOW64 目录(x86 复制到 System32目录下)。

把 x:\x\freeglut-2.8.1\lib\x86 文件夹下(以及Debug文件夹)的 .lib文件复制到 x:\x\Microsoft Visual Studio 10.0\VC\lib

至此,freeglut搞定!

(这一步搞定后,可以用代码检查。

测试一:建立win32 控制台工程,添入测试代码 编译运行。

测试二:建立win32 控制台工程,添入测试代码编译运行。)

二、Glew配置

把 x:\x\glew-1.11.0\include\GL 文件夹下的.h文件复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL 目录下。

把 x:\x\glew-1.11.0\lib\Release\Win32 文件夹下的 .lib文件复制到 x:\x\Microsoft Visual Studio 10.0\VC\lib 目录下。

把 x:\x\glew-1.11.0\bin\Release\Win32 文件夹下的 .dll文件复制到 C:\Windows\SysWOW64 目录下。(如果没有,就跳过)

注意,如果配的是VS2015,需要将配置文件放入x:\x\Microsoft Visual Studio 15.0....中

三、Glut配置

 x:\x\glutdlls37beta 文件夹下的 .h文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\GL 目录下。

把 x:\x\glutdlls37beta 文件夹下的 .lib文件 复制到 x:\x\Microsoft Visual Studio 10.0\VC\lib 目录下。

把 x:\x\glutdlls37beta 文件夹下的 .dll文件 复制到 C:\Windows\SysWOW64 目录下。

注意,如果配的是VS2015,需要将配置文件放入x:\x\Microsoft Visual Studio 15.0....中

四、构建GLTools库

新建一个gltoolswin32项目工程,如图:

a

 

b

先编译一下,(原文这里有错误,下面是我修改的)

把 x:\x\SB5\Src\GLTools\src 目录下的.cpp文件不包括glew.c文件)复制到 x:\x\gltools\gltools。

 x:\x\SB5\Src\GLTools\include 目录下的.h文件不包括GL文件夹)复制到 x:\x\gltools\gltools。

分别在头文件和源文件上右键 添加->现有项 把 .h 和 .cpp 文件添加到项目。如图:

d

 

编译提示如下:

e

gltools.lib 文件生成成功。可以在 x:\x\gltools\Debug 目录下查看。

把 .lib文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib 文件夹下。

把 .h文件 复制到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include 文件夹下(注意这次不是GL文件夹)。

到此gltoolsOK了。

五、测试

我们使用书中给的例子来测试一下环境。如果测试成功,则OpenGL环境才算是配好了。

建立test的项目工程:

f

g

我们使用第一章的例子来测试,复制 x:\x\SB5\Src\Chapter01\Block 中的所有文件 x:\x\test\test 文件夹下。同样在源文件上右键 添加->现有项Block.cpp文件包含进来。

添加附加依赖项(第一个图)(这种添加依赖项方式,仅仅对当前test项目生效。为了让其他项目也可以使用这些个.lib文件,所以应该在属性管理器中添加依赖项,具体方式见下面第二个图)

h

编译运行项目,效果如图:(如果编译出错,则用百度浏览器搜索错误信息,寻找相应的解决方案。或者查看本博文最后的“一些特殊情况的处理”,可能会得到帮助。)

按空格键变换显示效果,共六种效果:

1

3

6

六、一些特殊情况的处理:

      完全按照上面的教程配置OpenGL环境,在大多数电脑上,都能成功。但凡是都有例外,如果配置失败,下面的一些配置细节或许可以帮你解决问题。

case1:freeglut_static.lib无法打开问题

方案一:还需要将\OpenGL超级宝典\SB5\SB5\freeglut-2.6.0\VisualStudio2008Static\Release里的freeglut_static.lib拷贝到 x:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib才能运行成功。如果失败,可以尝试方案二;

方案二:仔细查看本篇博文关于 freeglut配置部分,有红色加粗部分。留意配置细节。 case2:“math3d.h”: No such file or directory

如果出现c:\project\gltools\gltools\math3d.cpp(45): fatal error C1083: 无法打开包括文件:“math3d.h”: No such file or directory等头文件找不到的情况就需要把VC/include文件夹里面也加上了math3d.h等头文件加上就可以运行了。

case3:Visual Studio 2015中ucrtbased.dll丢失

可以按照这个链接:http://blog.csdn.net/so_geili/article/details/53009680  ,选择里面的“解决方案三”来解决问题。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!