引言:
OpenGL超级宝典》(第五版)和《OpenGL编程指南》(第八版)是两本实用的OpengGL学习书籍,区别在于前者有更多实例,更容易按步骤进行操作,而后者着重介绍API,最好先阅读前者。
OpenGL的类库配置一直困扰着很多初学者,我在浏览各种参考文章的配置方法,发现在VS2015下进行配置遇到的问题特别多,经过几天的摸索终于解决完毕。
本文主要参考https://www.cnblogs.com/zpcdbky/p/6724772.html
http://blog.csdn.net/brillianteagle/article/details/51623208
http://www.it165.net/pro/html/201504/38164.html
感谢几位作者的付出。
本文的所有资源已打包好,下载地址:http://download.csdn.net/download/shs1992shs/10142198
一.glew的配置
glew官网:http://glew.sourceforge.net/
glew官方GitHub主页:https://github.com/nigels-com/glew
glew是一个跨平台的OpenGL的扩展库,支持多个操作系统,该网址已提供最新版glew。
1.分别下载图示Source和Binaries,其中Binaries版是已经编译好的glew文件,source是源码。
2.找到VS2015的安装目录,如果是安装在C盘的,多半是类似C:\Program Files(x86)\Microsoft Visual Studio 15.0这样的路径(在下的是Microsoft
Visual Studio 14.0),也可以在其他盘的目录;为了表述方便,后面一律按目录“D:\软件安装\VS2015”进行说明。
3.找到C++的头文件目录,如在下的是“D:\软件安装\VS2015\VC\include”,在include目录下新建GL文件夹(如果没有的话)。
4.将1中Binaries版的glew-2.1.0\include\GL文件夹下的4个头文件都拷贝到3中的GL文件夹下。
5.将1中Binaries版的glew-2.1.0\bin\Release\Win32下的glew32.dll拷贝到D:\软件安装\VS2015\VC\bin目录下。
6.将1中Binaries版的glew-2.1.0\lib\Release\Win32下的两个lib文件拷贝到D:\软件安装\VS2015\VC\lib目录下。
注意,没必要将dll文件拷贝到C:\Windows\System32或C:\Windows\SysWOW64下。
至此,glew配置完毕。
二、freeglut配置
1.glew获得最新的OpenGL API版本。freeglut则是用来取代glut库的。 所以,配置好glew和freeglut两个库,完全取代glu和glut库,同时可以获得最新版本的API,可以进行Shader编程。
freeglut最新的稳定版是3.0,其下载地址是:
http://freeglut.sourceforge.net/
打开网页,看到如下部分:
下载Prepackaged Releases里面的MSVC版本即可,点击红色进入下一个网页
点击红色框部分进行下载即可,得到的文件为名为:freeglut-MSVC-3.0.0-2.mp.zip
2.“freeglut-MSVC-3.0.0-2.mp.zip”解压,得到freeglut文件夹。在freeglut/include/GL目录下有4个头文
件,将除了glut.h之外的3个头文件拷贝到D:\软件安装\VS2015\VC\include\GL目录下。
3.将freeglut/bin目录下的freeglut.dll文件拷贝到D:\软件安装\VS2015\VC\bin目录下。
4.将freeglut/lib目录下的freeglut.lib文件拷贝到D:\软件安装\VS2015\VC\lib目录下。
至此,freeglut配置完毕。
三、glut配置
glut库很老,2000年以后就不再更新了,网上很多都可以下载到,也可以用我上传的资源包打包的。
1.将glut文件夹下的“glut.zip”解压,得到5个文件,分别是glut.h、gult.dll、glut32.dll、glut.lib、glut32.lib。
2.将glut.h拷贝到D:\软件安装\VS2015\VC\include\GL目录下。
3.将gult.dll、glut32.dll拷贝到D:\软件安装\VS2015\VC\bin目录下。
4.将glut.lib、glut32.lib拷贝到D:\软件安装\VS2015\VC\lib目录下。
至此,glut配置完毕。
注意:使用《OpenGL超级宝典》的例子时,需要在程序的开头加上#pragma comment(lib,"gltools.lib")。用于连接gltools.lib.
四、GLTools配置
GLTools库是由《OpenGL超级宝典》的作者提供的,其配置较为麻烦,可以使用我的资源包里打包好的文件,也可自行进行编译,下面就分别介绍这两种方法。
1.将gltools\include目录下的11个头文件全部拷贝到D:\软件安装\VS2015\VC\include目录***意是include目录,而不是GL子目录)。
2.将gltools\lib目录下的gltools.lib文件拷贝到D:\软件安装\VS2015\VC\lib目录下。
至此,gltools配置完毕。
至此,OpenGL配置完毕。
自行编译方法:
将资源包解压后得到的gltools文件夹。该文件夹的目录下有include和src两个文件夹。由于GLTools的编译依赖于glew,可以看到gltools\include\GL目录下就是某个版本的glew头文件,而gltools\src目录下有glew.c源文件。
由于前面已经使用了最新版的glew-2.1.0,用新版本的文件需要替换gltools\include\GL目录下的所有头文件,并采用glew-2.1.0版本的glew.c源文件替换gltools\src的glew.c。(前文提到的一、glew的配置的Source版本的glew-2.1.0\src\glew.c)。
注意1:资源包里的gltools已全部打包好,无需更改,如有需要更新的读者请按照上述方法进行操作。
注意2:在使用《OpenGL超级宝典》的例子时,发现变换管线的头文件GLGeometryTransform.h编译出错,出现大量的找不到标识符,因此对其进行了修正,如有读者遇到此类问题,可将资源包内的gltools文件夹下的GLGeometryTransform-fix内的GLGeometryTransform.h头文件替换到D:\软件安装\VS2015\VC\include目录下,即可正常使用。
生成gltools.lib
1.将gltools\include目录下的11个头文件全部拷贝到D:\软件安装\VS2015\VC\include目录***意是include目录,而不是GL子目录)。
2.启动VS2015,创建名为gltools的Win32应用程序。
3.选择“静态库”,将“预编译头”前的勾点掉。4.将gltools\src目录下的6个文件文件拷贝到刚才新建的工程目录中(如本例,就是E:\gltools\gltools)。
5.“源文件”右键-->“添加”-->“现有项”,将4中的6个文件添加到工程中。
6.在编译前需要更改其项目属性 C/C++ > 预处理器右边的预处理器定义中添加 _CRT_SECURE_NO_WARNINGS,
否则会出现函数使用不安全的提示,无法编译成功。
7.生成-->生成gltools
我在不同的文章中看到的有在Release模式下编译的,也有在Debug模式下编译的,目前还未看出来具体的区别,保险起见可以两种模式都编译一下.
编译时会出现一大推“dll链接不一致“的警告,但最终还是编译成功了。
8.在E:\gltools\Debug目录和E:\gltools\Release目录下可以分别找到生成的gltools.lib文件.参照freeglut的
lib文件放置格式,可选择Release下的gltools.lib文件其复制到D:\软件安装\VS2015\VC\lib目录下。
至此,大功告成。