我是刚接触OpenGL,打算学习红宝书第九版,但是发现配置开发环境还是挺繁琐的。中间遇到一些问题,希望能帮到大家,少走弯路。
推荐一个很好的OpenGL 项目学习地址:https://learnopengl-cn.github.io/intro/,这里不做介绍。因为版本和红宝书不一致。
下面重点介绍如何配置红宝书WIN10 VS2017 x64:
建议同时参阅教程:https://blog.csdn.net/outtt/article/details/50771057
配置教程:
各库如何下载编译:
1、下载freeglut库(这个不需要编译,网上有现成的库,WIN32项目的支持glut但是版本太老且不支持x64,这个完全兼容glut)。
地址:https://www.transmissionzero.co.uk/software/freeglut-devel/
得到include文件夹和lib文件夹里的文件,dll动态库暂时不知道有什么作用。
2、下载GLFW库,在gitHub上下载OGLPG-9th-Edition
地址:https://github.com/openglredbook/examples 这里面不仅包含了GLFW库源代码,同时也包含了OpenGL示例所需的代码
找到GLFW库(在.\examples\lib里面),然后CMake配置VS2017 x64,点击configure,然后再选项中勾选example,点击configure done再generate done
打开GLFW.sln编译源代码后就会生成glfw.lib,同时示例是能运行的。
在源代码include文件夹里面包含所需要的头文件
3、下载GL3W库。地址:https://github.com/skaslev/gl3w
用CMake配置GL3W库(VS2017 x64)的时候提示找不到可用的python执行程序,这是因为我们的电脑中没有安装python。需要下载安装一个最近版本的python。
(在GitHub上有多人提出不想安装python,版主有做回复,这里我选择了安装python)
再次CMake配置正常通过,点击generate,待done之后打开源代码编译,通过之后会在src生成gl3w.c,在include文件夹中生成需要的头文件。
配置:
1、新建一个文件夹专门放置OpenGL所需要的头文件和lib文件,如新建gl文件夹,再建include和lib子文件夹。
2、将freeglut下的include文件夹中GL拷贝到gl->include,lib拷贝到gl->lib。
3、同理将GLFW库和GL3W库(没有lib)所需要的include和lib放在gl文件夹中。
4、新建一个控制台项目,选择x64平台。选择合适的VS平台工具集和SDK。
5、这个时候我们可以直接在OGLPG-9th-Edition的src->example找到我们需要的(01-triangles)示例代码,复制粘贴过来就行,也可以自己敲。
6、在属性->C/C+±>附加包含目录中添加gl文件夹中include路径。
7、在链接器->常规->附加库目录中添加gl文件夹lib路径,在链接器->输入中添加lib中的文件名。
8、将gl3w.c、LoadShaders.h、LoadShaders.cpp、triangles.vert、triangles.frag以及vgl.h(这些都能在下载好的OGLPG-9th-Edition中找到)放到工程路径下,并在项目中添加这些文件,注意修改shaders调用triangles.vert、triangles.frag的路径,否则会是两个白色三角形。
9、如果遇到khronos_uint64_t未定义错误,则需修改glcoreard.h文件,在未定义之前添加#include <KHR/khrplatform.h>即可
–到此我们就可以运行红宝书的第一个例子了
另外:
1、也可以将gl文件夹目录写入到环境变量path路径中,这样就无需每次配置工程属性。
2、如果需要用到OpenGL其他模块功能需要下载其他的第三方库,如GLEW,glad等。
下载地址:https://www.khronos.org/opengl/wiki/OpenGL_Loading_Library