最近准备学习一下openGL,在配置环境的时候,对着别人的教程搞了好一会才搞好,感觉别人教的都是针对要自己编译的情况,我直接下载了不需要自己编译的版本,我就记录一下自己的情况。
一、官网下载GLFW,官网地址(https://www.glfw.org/download.html)
下载GLAD,地址(https://glad.dav1d.de)
1.GLFW下载
根据自己的操作系统选择,我是windows,所以我选择了64位版本。(这里有一个我遇到的小坑,因为参考一些教程有建议下32位的,所以第一次我下载了32位的,但是vs中debug是64位的,就出现了“无法解析的外部符号”的bug。虽然尝试把debug改成win32位的,但是代码又开始报错,所以我改下载64位的,解决了这个问题。)
2.GLAD下载
GLAD确保下面画圈四项中的选择和下图一致。
然后下拉,确保Generate a loader勾选,点击右下角GENERATE。
下载glad.zip。
二、文件整理
创建一个文件夹,命名“opengl”,在opengl文件夹中再创建两个文件夹,分别命名为“include”和“lib”。解压GLFW和GLAD压缩包。
1.include文件夹
把glad.zip中解压出来的include文件夹中的glad、KHR文件复制到我们自己创建的include文件夹中。
把glfw-3.3.bin.WIN64.zip中解压出来的include文件夹中的GLFW文件复制到我们自己创建的include文件夹中。
所以我们自己创建的include文件夹中有如下三个文件。
2.lib文件夹
在glfw-3.3.bin.WIN64.zip中解压出来的以下“lib-”为前缀的文件中选择与自己IDE合适的版本(我使用的vs为2019版本,所以我选择lib-vc2019)。
打开lib-vc2019文件夹,里面有三个文件(如下),把他们复制到我们自己创建的lib文件夹中。
所以我们自己创建的lib文件夹下有:
3.src文件夹
这个文件夹来源于glad.zip压缩包,我们把它直接放到opengl文件夹下。
所以我们的opengl文件夹下有以下三个文件:
三、进入vs开始配置
首先创建一个空白项,需要是c++的:
然后直接把opengl文件夹拖进解决方案中。
右键项目,点击属性,弹出的窗口如下,首先左边配置属性中选择VC++目录,我们需要修改的部分在右边红线画出的包含目录和库目录。
1、包含目录
点击包含目录,画圈部分最右边有一个下拉键,点击出现下拉框,点击编辑。
弹出包含目录窗口,点击横线部分,将opengl文件夹中的include文件的路径复制上去,(下图为复制完成)然后点击确定。
2、添加库目录
按照以上打开包含目录的方法打开库目录,将opengl文件夹中的lib文件的路径复制上去,然后点击确定。
3、添加依赖项
左边选择连接器,点选输入,我们需要添加右边附加依赖项,也是按照之前的方法打开。
手动输入红圈中的内容(你可以复制下面这两行):
opengl32.lib
glfw3.lib
然后点击确定。
添加完成后,记得点击右下角的应用,然后再点击确定。
4、检测配置
创建一个源文件,添加如下代码:
代码出处:https://blog.csdn.net/sigmarising/article/details/80470054
#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);
}
试着运行看看,如果弹出以下窗口,那么配置就成功啦~~~
如果按照以上步骤还是不成功…那我也不会啦~~
本文有参考教程:https://blog.csdn.net/sigmarising/article/details/80470054