c++ - GLFW:创建窗口时出现 'WGL: The driver does not appear to support OpenGL' 错误

标签 c++ windows opengl glfw msys2

我正在将我的简单 lwjgl3 游戏移植到 C++,并得到了错误:WGL:驱动程序似乎不支持 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 的问题。

最佳答案

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

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

关于c++ - GLFW:创建窗口时出现 'WGL: The driver does not appear to support OpenGL' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39600073/

相关文章:

c++ - 使用 C++ 通过继承组织树复制

c++ - 为什么指针类型的内置关系运算符不在 C++ 中生成总顺序?

c++ - 静态变量释放顺序

windows - Neo.ClientError.Procedure.ProcedureNotFound Neo4j Windows 桌面版

php - 'php.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件

c++ - Windows Phone 7 中 native 代码 C++ 和 openGL 的兼容性

c++ - 在命名空间中定义变量但在测试中得到空值

wpf - WinAppDriver - 如何获取元素上可用的属性列表

java - 如何将自定义字体与 Slick 的 UnicodeFont 类一起使用?

c++ - 如何使用 glUniformMatrix4fv 将 4x4 变换矩阵传递和使用到 vShader 中?