OpenGL超级宝典第7版 配置环境&第一个程序

笔者学习OpenGL还没几天,就已经快崩溃了。OpenGL配环境真是一个坑,网上教程很多都比较旧了,而针对OpenGL超级宝典第7版的教程几乎没有。所以笔者四处碰壁,花了很多时间,终于弄出来一个可行的方法。

首先贴出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版的源代码:

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

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

然后关闭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,这次是生成蓝宝书的示例程序。

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

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

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

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

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

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

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

完成之后应该是这样的:

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

完成之后应该是这样的:

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

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

下面开始配环境了。

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

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

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

这是相对路径方法:

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

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

WIN32

_WINDOWS

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

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

这是相对路径方法。

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

将这几个库添加进依赖项

sb7_d.lib

glfw3_d.lib

opengl32.lib

glu32.lib

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

// 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);

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

祝大家学习愉快。

猜你喜欢

转载自blog.csdn.net/Leo_LiangXuYuan/article/details/82957828