我正在将我的简单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的问题。
答案 0 :(得分:0)
仅使用独立的mingw-w64解决了它。相同的程序现在运行正常,没有任何错误,更不用说glfw和SFML示例现在也运行。
我还没有发现可能导致错误的原因,我想这与msys2有关,但现在问题已经解决了。