首先贴出OpenGL超级宝典第7版 PDF 的下载地址:  ​​https://f.usemind.org/files/b/1/UseMind.ORG_comprehensive-tutorial-and-reference_2015__.pdf​

还有OpenGL超级宝典官方网站:  ​​http://www.openglsuperbible.com/​

要开始OpenGL超级宝典的学习不是用传统的配环境方法的,因为它要用到它自己写的头文件和库。我们要到官方网站上获取这些文件。

首先在官方网站下载第7版的源代码:

OpenGL超级宝典第7版 配置环境&第一个程序_绝对路径

把下载下来的压缩包解压到合适的位置(如:D:/sb7code-master),运行CMake,生成Visual Studio项目来编译glfw库。

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_02

成功打开项目后,编译整个工程(直接编译,不用改东西),Debug和Release都要。

OpenGL超级宝典第7版 配置环境&第一个程序_解决方案_03

然后关闭Visual Studio,打开文件夹。

把sb7code-master\extern\glfw-3.0.4\build\src\Debug文件夹下的glfw3.lib复制到sb7code-master\lib,并改名为glfw3_d.lib

把sb7code-master\extern\glfw-3.0.4\build\src\Release文件夹下的glfw3.lib复制到sb7code-master\lib,这次不改名

再次运行CMake,这次是生成蓝宝书的示例程序。

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_04

成功打开项目后,编译整个工程(直接编译,不用改东西),Debug和Release都要。

这时准备工作已经做好了。

可以开始新建自己的工程了

打开Visual Studio,新建一个新解决方案。

OpenGL超级宝典第7版 配置环境&第一个程序_解决方案_05

打开解决方案所在的文件夹,新建两个文件夹:include和lib

OpenGL超级宝典第7版 配置环境&第一个程序_绝对路径_06

把sb7code-master\include文件夹里的东西复制到include文件夹

把sb7code-master\extern\glfw-3.0.4\include文件夹里的东西复制到include文件夹

完成之后应该是这样的:

OpenGL超级宝典第7版 配置环境&第一个程序_绝对路径_07

把sb7code-master\lib文件夹里的东西复制到lib文件夹

完成之后应该是这样的:

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_08

笔者习惯新建一个文件夹来放项目,这样看起来整洁一点。在LearnOpenGL文件夹新建一个project文件夹。

OpenGL超级宝典第7版 配置环境&第一个程序_解决方案_09

回到Visual Studio ,在解决方案下新建一个项目

OpenGL超级宝典第7版 配置环境&第一个程序_绝对路径_10

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_11

下面开始配环境了。

先新建一个源文件,不然项目属性里面没有C/C++这一项。

OpenGL超级宝典第7版 配置环境&第一个程序_绝对路径_12

打开项目→属性,打开C/C++→常规→附加包含目录→小箭头→编辑。

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_13

添加你的include文件夹。两种方法,绝对路径简单,相对路径可以防止项目移动后用不了。二选一即可,效果一样。

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_14

这是相对路径方法:

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_15

然后打开预处理器,修改预处理器定义

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_16

添加下面两行:(这是模仿书本的示例代码所做的操作,我个人肯定想不出来)


WIN32

_WINDOWS


OpenGL超级宝典第7版 配置环境&第一个程序_解决方案_17

打开链接器→常规,修改附加库目录。

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_18

把lib文件夹添加进去,绝对路径或者相对路径,二选一。

OpenGL超级宝典第7版 配置环境&第一个程序_绝对路径_19

这是相对路径方法。

OpenGL超级宝典第7版 配置环境&第一个程序_解决方案_20

打开链接器→输入,修改依赖库

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_21

将这几个库添加进依赖项


sb7_d.lib

glfw3_d.lib

opengl32.lib

glu32.lib


OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_22

到这里就配完了,贴上书上的例子测试一下。

// Include the "sb7.h" header file

#include "sb7.h"

// Derive my_application from sb7::application

class my_application : public sb7::application

{

public:

// Our rendering function

void render(double currentTime)

{

// Simply clear the window with red

static const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f };

glClearBufferfv(GL_COLOR, 0, red);

}

};

// Our one and only instance of DECLARE_MAIN

DECLARE_MAIN(my_application);

运行,结果弹出了一个红色的窗口,大功告成。

OpenGL超级宝典第7版 配置环境&第一个程序_相对路径_23

祝大家学习愉快。