《OpenGL 超级宝典(第 7 版)》环境配置

获取源文件

首先可以在异步图书上下载到相应源代码和资源文件。如图 1 所示,sb7code-master 是源代码,superbible7-media 是一些资源文件(目前暂不知用途)。

图1 源文件

编译 GLFW 库

首先编译出 GLFW 库,后面的开发都是基于此库。CMake 的配置如图 2 所示,GLFW 源码所在的目录为 sb7code-master\extern\glfw-3.0.4,并新建目录 sb7code-master\extern\glfw-3.0.4\build 用于存储编译结果。

之后依次点击 "Configure"、"Generate" 和 "Open Project"。"Configure" 时注意选择自己电脑上有的编译环境。

图2 GLFW CMake 配置

这边使用 VS 编译,打开 VS 工程文件之后。菜单栏中选择“生成-生成解决方案”分别编译 Debug 和 Release 版本的库。编译生成的库文件分别在 sb7code-master\extern\glfw-3.0.4\build\src 下的 DebugRelease 目录中。我们将 Debug 版本的库重新命名为 glfw3_d.lib(示例工程需要)。

最后我们将编译出的 GLFW 库拷贝到示例工程下的 sb7code-master\lib 目录,用于示例工程的编译。

编译示例工程

编译示例工程的步骤与编译 GLFW 库一样,如图 3 所示,此时 CMake 中指定的源目录为 sb7code-master,编译内容目录为 sb7code-master\build

图3 示例工程 CMake 配置

打开 VS 工程文件之后,同样切换 Debug 和 Release 进行编译,可以得到所有示例的 Debug 和 Release 可执行文件,我们可以选择任意一个执行进行查看体验。但我们这边主要是想得到编译生成的 sb7.lib 库,编译结束后它就已经生成在 sb7code-master\lib 目录下了。sb7.lib 是作者自行封装的库,能进一步方便程序的开发。

自建示例工程文件

在阅读书籍的时候,总是会想自己敲一遍代码的。这节介绍如何自己创建示例工程,来对示例代码进行验证。工程的建立主要参照示例工程。

首先创建一个空的窗体项目。可再将示例工程下的 sb7code-master\includesb7code-master\lib 复制一份。为了方便我们将 sb7code-master\extern\glfw-3.0.4\include\GLFW 也复制到新的 include 目录下。这样我们就得到了所需要的头文件和库文件。

如图 4 所示,我们在“属性页 - C/C++ - 常规 - 附加包含目录”中指定头文件所在目录。

图4 指定头文件目录

如图 5 所示,我们在“属性页 - C/C++ - 预处理器 - 预处理器定义”中定义平台相关宏:

  • WIN32
  • _WINDOWS
图5 预处理宏定义

如图 6 所示,我们在“属性页 - 链接器 - 常规 - 附加库目录”中指定库文件所在目录。

图6 指定库文件目录

如图 7 所示,我们在“属性页 - 链接器 - 输入 - 附加依赖项”中指定需要链接的库文件:

  • sb7_d.lib
  • glfw3_d.lib
  • opengl32.lib
  • glu32.lib
  • kernel32.lib
  • user32.lib
  • gdi32.lib
  • winspool.lib
  • shell32.lib
  • ole32.lib
  • oleaut32.lib
  • uuid.lib
  • comdlg32.lib
  • advapi32.lib
图7 指定库文件

书中的第一个示例如下,如果能正常编译运行就算是配置无误了。

  1. #include "sb7.h"
  2.  
  3. class my_application : public sb7::application
  4. {
  5. public:
  6.     void render(double currentTime)
  7.     {
  8.          static const GLfloat red[] = {1.0f, 0.0f, 0.0f, 1.0f};
  9.          glClearBufferfv(GL_COLOR, 0, red);
  10.     }
  11. };
  12.  
  13. DECLARE_MAIN(my_application);