GLFW:' WGL:驱动程序似乎不支持OpenGL'创建窗口时出错

时间:2016-09-20 17:11:28

标签: c++ windows opengl glfw msys2

我正在将我的简单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;
    }
    ...

我正在使用 msys2 mingw-w64 ,并在mingw-w64 shell中编译该程序。首先我认为问题出在我构建的glfw3上,所以我使用了gww的lwjgl3副本而得到了同样的错误。我尝试了推荐的提示,上下文版本等,但无济于事。我很确定该驱动程序支持OpenGL,并且只是为了确保我也检查了更新。

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

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

1 个答案:

答案 0 :(得分:0)

仅使用独立的mingw-w64解决了它。相同的程序现在运行正常,没有任何错误,更不用说glfw和SFML示例现在也运行。

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