OpenGl学习之GLFW和GLAD环境配置(仅IDE为VS情况下)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/moon_goes/article/details/101943748

最近准备学习一下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

猜你喜欢

转载自blog.csdn.net/moon_goes/article/details/101943748
今日推荐