如何修复“未解析的外部符号_gladLoadGLLoader在函数_main中被引用”和“未解析的外部符号_glad_glViewport”?

11
构建程序时我一直得到“未解析的外部符号”错误。然而,程序编译正常。我正在使用GLFW和GLAD库。
#include <glad/glad.h>
#include <GLFW/glfw3.h>

#include <iostream>

void framebuffer_size_callback(GLFWwindow* window, int width, int height);

//#undef main
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, "LearningOpenGL", NULL, NULL);

    if (window == NULL) {
        std::cout << "Failed To Create Window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);

    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }

    while (!glfwWindowShouldClose(window))
    {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glViewport(0, 0, 800, 600);

    glfwTerminate();
    return 0;
}

void framebuffer_size_callback(GLFWwindow* window, int width, int height) {
    glViewport(0, 0, width, height);
}

我一直遇到相同的两个错误:

Main.obj : error LNK2019: unresolved external symbol _gladLoadGLLoader referenced in function _main

Main.obj : error LNK2001: unresolved external symbol _glad_glViewport

你是如何构建程序的? - SurvivalMachine
LNK2019 是一个链接错误,而非编译错误。因此代码几乎无关紧要。当您使用 glad 时,需要编译 "glad.c" 并链接生成的目标文件。 - Rabbid76
将glad.c添加到您的项目文件夹中。 - shiva rao
2个回答

46

前往项目名称 -> 添加 -> 现有项,然后添加 glad.c 文件。


非常感谢,我通过资源管理器文件夹添加了文件,以为它会自动检测呢。 - Mahi

1
你应该实际添加GLAD的'src'目录中提供的glad.c文件。

你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接