GLFW:创建窗口时出现“WGL:驱动程序不支持 OpenGL”错误

问题描述 投票:0回答:2

我正在将简单的 lwjgl3 游戏移植到 C++,并得到了

Error: WGL: The driver does not appear to support OpenGL
。 java 中的代码几乎相同,所以我想知道出了什么问题以及如何修复它:

int main(int argc, char** argv) {
    glfwSetErrorCallback(error_callback);
    if (!glfwInit()) {
        std::cerr << "Failed to initialize GLFW" << std::endl;
        return -1;
    }

    glfwDefaultWindowHints();
    //glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    //glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
    glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
    glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
    glfwWindowHint(GLFW_SAMPLES, 4);

    GLFWwindow* window = glfwCreateWindow(640, 480, "Example", nullptr, nullptr);
    if (!window) {
        std::cerr << "Failed to create window" << std::endl;
        glfwTerminate();
        return -1;
    }
    ...

我使用msys2mingw-w64,并在mingw-w64 shell中编译程序。首先,我认为问题出在我构建的 glfw3 上,所以我使用 glfw 的 lwjgl3 副本代替,并得到了相同的错误。我已经尝试过推荐的提示、上下文版本等,但没有效果。我非常确定该驱动程序支持 OpenGL,只是为了确保我也检查了更新。

在测试内容以查看哪些有效、哪些无效时,我已经确认所有 glfw 和 SFML 示例都不起作用(这两个示例都是我使用 mingw-w64 构建的)。编译期间没有错误,cmd 中没有异常和/或错误,也没有创建窗口。

我对 Windows 开发不是很熟悉,所以我不确定这是否是 mingw-w64、glfw 或 wgl 的问题。

c++ windows opengl glfw msys2
2个回答
1
投票

仅使用独立的 mingw-w64 解决了这个问题。相同的程序现在运行良好,没有任何错误,更不用说 glfw 和 SFML 示例现在也可以运行。

我还没有发现可能导致错误的原因,我想它与 msys2 有关,但现在问题已经解决了。


0
投票

阅读下面的文章可以解决您的问题。

[ https://url.kr/hgeimf ]

© www.soinside.com 2019 - 2024. All rights reserved.