我正在将我的简单lwjgl 3游戏移植到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;
}
...
我使用msys 2和mingw-w 64,并在mingw-w 64 shell中编译程序。首先,我认为问题出在我构建的glfw 3上,所以我使用了glfw的lwjgl 3副本,得到了同样的错误。我已经尝试了推荐的提示,上下文版本等,但无济于事。我很确定驱动程序支持OpenGL,只是为了确保我也检查了更新。
在测试的东西,看看什么工作和不工作,我已经确认,所有的glfw和SFML的例子都不工作(都是我用 * mingw-w 64 * 构建的)。编译过程中没有错误,cmd中没有异常和/或错误,也没有创建窗口。
我对windows开发不是很熟悉,所以我不确定这是mingw-w 64,glfw还是wgl的问题。
1条答案
按热度按时间bzzcjhmw1#
只使用独立的mingw-w 64解决了这个问题。同样的程序现在可以正常运行,没有任何错误,更不用说glfw和SFML示例现在也可以正常运行了。
我还没有发现什么可能导致错误,我想这与msys 2有关,但现在问题已经解决了。