我尝试使用最新版本的qt创建器设置SFML 2.0,我已经设置了SFML,我导入了一个我在visual studio中编写的小游戏。编译后,我明白了:
我尝试了什么
其他详情
我正在运行Windows XP SP3,最新版本的mingw和qt SDK以及SFML
我正在尝试使用的代码在Visual Studio 2010上没有任何错误甚至是警告 和 Code :: Blocks
< / LI>我没有自己编译SFML
我的gcc版本是4.6.2
我的gcc是DW2
我没有得到任何结果,我甚至不知道如何远程接近解决这个问题,甚至不知道从哪里开始。
修改 我无法向您展示我的所有代码,它是超过20个文件,我几乎90%确定它不是我的代码,我已经在上面说过:我可以在任何IDE上运行此代码而没有任何警告甚至错误,除了qt creator。
答案 0 :(得分:24)
这是因为你没有初始化OpenGL。 lib过剩的例子。
错:
glewInit(); // ERROR MISSING GL VERSION
glutInitDisplayMode(GLUT_RGB);
好:
glutInitDisplayMode(GLUT_RGB);
glewInit();
编辑我认为对于SFML:
sf::Window App(sf::VideoMode(400, 400, 32), "Window");
glewInit();
编辑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;
}
我的输出:
Start
Test 1
Missing GL version
Init window
Test 2
End
编译:{{1}}
祝你好运;)
答案 1 :(得分:5)
根据user3648895的要求,我会在评论之外单独发布我的答案。
对于那些使用GLFW而不是SFML的人,你需要在glfwMakeContextCurrent之后调用glewInit()
答案 2 :(得分:3)
如果您使用glfw使用glew,请使用glfwMakeContextCurrent
(https://github.com/Cloudef/glhck/issues/15)
答案 3 :(得分:1)
放入glewInit();在创建sf :: window之后,解决了我在sfml中使用glew的问题