OpenGL环境配置一般选择Win32,因此本教程将搭载Win32平台的开发环境。
目录
搭建环境
- 操作系统:Windows 10
- 编译器:Visual Studio 2017
- GLAD库
- GLFW库
配置步骤
Step1. 下载编译好的GLFW库
下载链接:https://www.glfw.org/download.html.
![be78abdedbd53f4bc90b4fce1cdbca0f.png](https://img-blog.csdnimg.cn/img_convert/be78abdedbd53f4bc90b4fce1cdbca0f.png)
下载选择的版本
Step2. 下载GLAD库
GLAD是一个开源的库,它能解决我们上面提到的那个繁琐的问题。GLAD的配置与大多数的开源库有些许的不同,GLAD使用了一个在线服务。在这里我们能够告诉GLAD需要定义的OpenGL版本,并且根据这个版本加载所有相关的OpenGL函数。
打开GLAD的 在线服务.,将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL(gl)版本(我们的教程中将使用3.3版本,但更新的版本也能正常工作)。之后将模式(Profile)设置为Core,并且保证生成加载器(Generate a loader)的选项是选中的。现在可以先(暂时)忽略拓展(Extensions)中的内容。都选择完之后,点击生成(Generate)按钮来生成库文件。
如下图填写信息:
![0fca9289cfb2724826c8b24b7dce819c.png](https://img-blog.csdnimg.cn/img_convert/0fca9289cfb2724826c8b24b7dce819c.png)
![19a4df272d9c7659565e053a197a9a5a.png](https://img-blog.csdnimg.cn/img_convert/19a4df272d9c7659565e053a197a9a5a.png)
点击Generate完成
之后生成下图文件:
![9df5d3de38c36752725c94efaabf8124.png](https://img-blog.csdnimg.cn/img_convert/9df5d3de38c36752725c94efaabf8124.png)
点击下载压缩包,里面包含的文件内容如下:
![bad99fe0b08ba6c81b50be4aec2075bc.png](https://img-blog.csdnimg.cn/img_convert/bad99fe0b08ba6c81b50be4aec2075bc.png)
Step3. 配置Visual Studio工程
新建VC++空项目:(起名字随意)
![e22eba3cf204e7e0d1ae6d88d05970e9.png](https://img-blog.csdnimg.cn/img_convert/e22eba3cf204e7e0d1ae6d88d05970e9.png)
打开项目属性界面,配置以下内容:
![fcfeedecaa1e491b12d3b00003d3c599.png](https://img-blog.csdnimg.cn/img_convert/fcfeedecaa1e491b12d3b00003d3c599.png)
- 包含文件内容为刚才下载的glad和glfw下文件包中的include文件夹下的内容路径:
![6602244e8760f8a31b121df44505fd20.png](https://img-blog.csdnimg.cn/img_convert/6602244e8760f8a31b121df44505fd20.png)
- 库目录内容为glfw文件夹下对应的VS版本内容(VS2017):
![b5e1ca1a80d316015f41b44202c8539a.png](https://img-blog.csdnimg.cn/img_convert/b5e1ca1a80d316015f41b44202c8539a.png)
- 链接输入的内容为:
opengl32.lib
glfw3.lib
![748a85a8a8ff332489cae12924dee091.png](https://img-blog.csdnimg.cn/img_convert/748a85a8a8ff332489cae12924dee091.png)
![cadeb002eb0fea84f5e9ff8da7c60d38.png](https://img-blog.csdnimg.cn/img_convert/cadeb002eb0fea84f5e9ff8da7c60d38.png)
配置完成后将glad包中的src中的glad.c复制到项目中:
![072655dbca982f7ba02f411fdab98f38.png](https://img-blog.csdnimg.cn/img_convert/072655dbca982f7ba02f411fdab98f38.png)
创建一个cpp文件,我创建的是main,内容如下:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
int main() {
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow *window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
if (window == NULL) {
cout << "Failed to create GLFW window" << endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
glViewport(0, 0, 800, 600);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
while (!glfwWindowShouldClose(window)) {
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
void framebuffer_size_callback(GLFWwindow* window, int width, int height) {
glViewport(0, 0, width, height);
}
如果能运行成功就代表配置成功,运行结果如下:
![b4896196ee4352fbc31d6f13747668f2.png](https://img-blog.csdnimg.cn/img_convert/b4896196ee4352fbc31d6f13747668f2.png)
其他问题
如果项目不报错但是运行失败请检查自己的项目是否是32位项目:
![c79454c859fb67af32057de181b4852c.png](https://img-blog.csdnimg.cn/img_convert/c79454c859fb67af32057de181b4852c.png)
![e6d32af1e6cc4a796d68b5b94402e367.png](https://img-blog.csdnimg.cn/img_convert/e6d32af1e6cc4a796d68b5b94402e367.png)
同时,请确认您的系统支持OpenGL3.3或更高版本,否则此应用有可能会崩溃或者出现不可预知的错误。如果想要查看OpenGL版本的话,在Linux上运行glxinfo,或者在Windows上使用其它的工具(例如OpenGL Extension Viewer)。如果你的OpenGL版本低于3.3,检查一下显卡是否支持OpenGL 3.3+(不支持的话你的显卡真的太老了),并更新你的驱动程序,有必要的话请更新显卡。