Bug*_*ter 22 c++ opengl glew qt-creator sfml
我试图用最新版本的qt创建器设置SFML 2.0,我已经设置了SFML,我导入了一个我在visual studio中编写的小游戏.编译后,我得到这个:

我尝试了什么
额外细节
我正在运行Windows XP SP3,最新版本的mingw和qt SDK以及SFML
我正在尝试使用的代码在Visual Studio 2010 和 Code :: Blocks 上没有任何错误甚至警告
我自己没有编译SFML
我的gcc版本是4.6.2
我的gcc是DW2
我没有得到任何结果,我甚至不知道如何远程接近解决这个问题,甚至不知道从哪里开始.
编辑 我无法向您展示我的所有代码,它是超过20个文件,我几乎90%确定它不是我的代码,我上面说过:我可以运行此代码,没有任何警告甚至任何IDE上的错误除了qt创建者.
Que*_*rez 24
这是因为你没有初始化OpenGL.lib过剩的例子.
错误:
glewInit(); // ERROR MISSING GL VERSION
glutInitDisplayMode(GLUT_RGB);
Run Code Online (Sandbox Code Playgroud)
好:
glutInitDisplayMode(GLUT_RGB);
glewInit();
Run Code Online (Sandbox Code Playgroud)
编辑我认为对于SFML:
sf::Window App(sf::VideoMode(400, 400, 32), "Window");
glewInit();
Run Code Online (Sandbox Code Playgroud)
编辑2测试此代码.
#include <SFML/Window.hpp>
#include <iostream>
#include <GL/glew.h>
int
main(int, const char**)
{
GLenum err;
std::cout << "Start" << std::endl;
std::cout << "Test 1" << std::endl;
if ((err = glewInit()) != GLEW_OK)
std::cout << glewGetErrorString(err) << std::endl;
std::cout << "Init window" << std::endl;
sf::Window app(sf::VideoMode(400, 400, 32), "Windows");
std::cout << "Test 2" << std::endl;
if ((err = glewInit()) != GLEW_OK)
std::cout << glewGetErrorString(err) << std::endl;
std::cout << "End" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的输出:
Start
Test 1
Missing GL version
Init window
Test 2
End
Run Code Online (Sandbox Code Playgroud)
编译: g++ -W -Wall -Werror main.cpp -lsfml-window -lGLEW
祝好运 ;)
小智 6
如果您在 glfw 中使用 glew,请使用glfwMakeContextCurrent(https://github.com/Cloudef/glhck/issues/15)
应user3648895的请求,我将我的答案单独发布在评论之外。
对于使用GLFW而不是SFML的用户,您需要在glfwMakeContextCurrent之后调用glewInit()