《OpenGL 超级宝典(第 7 版)》环境配置
获取源文件
首先可以在异步图书上下载到相应源代码和资源文件。如图 1 所示,sb7code-master 是源代码,superbible7-media 是一些资源文件(目前暂不知用途)。
编译 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" 时注意选择自己电脑上有的编译环境。
这边使用 VS 编译,打开 VS 工程文件之后。菜单栏中选择“生成-生成解决方案”分别编译 Debug 和 Release 版本的库。编译生成的库文件分别在 sb7code-master\extern\glfw-3.0.4\build\src 下的 Debug 和 Release 目录中。我们将 Debug 版本的库重新命名为 glfw3_d.lib(示例工程需要)。
最后我们将编译出的 GLFW 库拷贝到示例工程下的 sb7code-master\lib 目录,用于示例工程的编译。
编译示例工程
编译示例工程的步骤与编译 GLFW 库一样,如图 3 所示,此时 CMake 中指定的源目录为 sb7code-master,编译内容目录为 sb7code-master\build。
打开 VS 工程文件之后,同样切换 Debug 和 Release 进行编译,可以得到所有示例的 Debug 和 Release 可执行文件,我们可以选择任意一个执行进行查看体验。但我们这边主要是想得到编译生成的 sb7.lib 库,编译结束后它就已经生成在 sb7code-master\lib 目录下了。sb7.lib 是作者自行封装的库,能进一步方便程序的开发。
自建示例工程文件
在阅读书籍的时候,总是会想自己敲一遍代码的。这节介绍如何自己创建示例工程,来对示例代码进行验证。工程的建立主要参照示例工程。
首先创建一个空的窗体项目。可再将示例工程下的 sb7code-master\include 和 sb7code-master\lib 复制一份。为了方便我们将 sb7code-master\extern\glfw-3.0.4\include\GLFW 也复制到新的 include 目录下。这样我们就得到了所需要的头文件和库文件。
如图 4 所示,我们在“属性页 - C/C++ - 常规 - 附加包含目录”中指定头文件所在目录。
如图 5 所示,我们在“属性页 - C/C++ - 预处理器 - 预处理器定义”中定义平台相关宏:
- WIN32
- _WINDOWS
如图 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
书中的第一个示例如下,如果能正常编译运行就算是配置无误了。
- #include "sb7.h"
- class my_application : public sb7::application
- {
- public:
- void render(double currentTime)
- {
- static const GLfloat red[] = {1.0f, 0.0f, 0.0f, 1.0f};
- glClearBufferfv(GL_COLOR, 0, red);
- }
- };
- DECLARE_MAIN(my_application);