Qtクリエーターの最新バージョンでSFML 2.0をセットアップしようとしましたが、SFMLを正しくセットアップし、ビジュアルスタジオで書いた小さなゲームをインポートしました。コンパイルすると、私はこれを取得します:
私が試したもの
追加の詳細
Windowsを実行していますXP SP3、mingwおよびqt SDKおよびSFMLの最新バージョン
私が使用しようとしているコードは、Visual Studio 2010でエラーまたは警告なしで機能しますand Code :: Blocks
私はSFMLを自分でコンパイルしませんでした
私のgccバージョンは4.6.2です
私のgccはDW2のものです
結果が出ません。どこから始めればよいのか、リモートでこれを修正する方法を知りません。
[〜#〜] edit [〜#〜]私はすべてのコードを表示することはできません。20ファイルを超えており、ほぼ90%は自分のコードではないことを確信しています。上記:qt作成者を除くすべてのIDEで警告やエラーさえ発生せずにこのコードを実行できます。
これは、OpenGLを初期化していないためです。 lib過剰の例。
違う:
glewInit(); // ERROR MISSING GL VERSION
glutInitDisplayMode(GLUT_RGB);
良い:
glutInitDisplayMode(GLUT_RGB);
glewInit();
[〜#〜] edit [〜#〜] 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
コンパイル:g++ -W -Wall -Werror main.cpp -lsfml-window -lGLEW
幸運を ;)
User3648895のリクエストに応じて、コメントの外側に個別に回答を投稿しています。
SFMLの代わりにGLFWを使用する場合は、glfwMakeContextCurrentの後にglewInit()を呼び出す必要があります。
Glfwでglewを使用している場合は、glfwMakeContextCurrent
を使用してください( https://github.com/Cloudef/glhck/issues/15 )
SDL2のレンダラー関数を使用する場合は、SDL_CreateRenderer
の直後に配置する必要があります。