Au final, j'ai recompilé la SFML en suivant un tuto qui est sur GitHub, avec cMake, etc. (
https://github.com/SFML/SFML/wiki/Tutorial%3A-Compile-and-Link-SFML-with-Qt-Creator)
Seulement, comme toujours, il y a quelque chose qui ne va pas ... Lors de la compilation j'obtiens des erreurs :
22:07:42: Exécution des étapes de compilation pour le projet test...
22:07:42: Configuration inchangée, étape QMake sautée.
22:07:42: Débute : "C:\QtSDK\QtCreator\bin\jom.exe"
C:\QtSDK\QtCreator\bin\jom.exe -nologo -j 8 -f Makefile.Debug
Qt: Untested Windows version 6.2 detected!
cl -c -nologo -Zm200 -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -I"c:\SFML-master\include" -I"..\test" -I"." -I"..\..\..\QtSDK\Desktop\Qt\4.8.1\msvc2010\mkspecs\win32-msvc2010" -Fodebug\ @C:\Users\DORIA_~1\AppData\Local\Temp\main.obj.6840.0.jom
jom 1.0.6 - empower your cores
Qt: Untested Windows version 6.2 detected!
main.cpp
link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:"debug\test.intermediate.manifest" /OUT:debug\test.exe @C:\Users\DORIA_~1\AppData\Local\Temp\test.exe.6840.391.jom
main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: void __thiscall sf::Window::close(void)" (__imp_?close@Window@sf@@QAEXXZ) référencé dans la fonction _main
main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: bool __thiscall sf::Window::pollEvent(class sf::Event &)" (__imp_?pollEvent@Window@sf@@QAE_NAAVEvent@2@@Z) référencé dans la fonction _main
main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: bool __thiscall sf::Window::isOpen(void)const " (__imp_?isOpen@Window@sf@@QBE_NXZ) référencé dans la fonction _main
main.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: __thiscall sf::Window::Window(class sf::VideoMode,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,struct sf::ContextSettings const &)" (__imp_??0Window@sf@@QAE@VVideoMode@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IABUContextSettings@1@@Z) référencé dans la fonction _main
debug\test.exe : fatal error LNK1120: 4 externes non résolus
command failed with exit code 1120
command failed with exit code 2
22:07:42: Le processus "C:\QtSDK\QtCreator\bin\jom.exe" s'est terminé avec le code 2.
Erreur à la compilation du projet test (cible : Desktop)
Lors de l'exécution de l'étape "Make"
J'ai refais la manip de la compilation plusieurs fois pour être sur de ne pas avoir fait de bêtises mais rien m'y fait : ca ne veut pas marcher ... Il y a toujours des erreurs de link
D'ailleurs je ne sais pas si c'est normal, mais je dois déplacer le dossier SFML (qui lui même sort du dossier include) dans le repertoire courant (du projet Qt), sinon, Qt ne trouve pas les include à la compilation.
Voila mon .pro :
TEMPLATE = app
CONFIG += console
CONFIG -= qt
LIBS += -LC:/SFML-master/qtcreator-build/lib
CONFIG(release, debug|release): LIBS += -lsfml-audio -lsfml-graphics -lsfml-main -lsfml-network -lsfml-window -lsfml-system
CONFIG(debug, debug|release): LIBS += -lsfml-audio-d -lsfml-graphics-d -lsfml-main-d -lsfml-network-d -lsfml-window-d -lsfml-system-d
INCLUDEPATH += C:/SFML-master/include
DEPENDPATH += C:/SFML-master/include
SOURCES += main.cpp
Et le main.cpp, même si il n'y a pas grand chose :
#include <iostream>
#include <SFML/Window.hpp>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
sf::Window window(sf::VideoMode(800, 600), "My window");
// on fait tourner le programme jusqu'à ce que la fenêtre soit fermée
while (window.isOpen())
{
// on inspecte tous les évènements de la fenêtre qui ont été émis depuis la précédente itération
sf::Event event;
while (window.pollEvent(event))
{
// évènement "fermeture demandée" : on ferme la fenêtre
if (event.type == sf::Event::Closed)
window.close();
}
}
return 0;
}
Voila, j'espère que j'ai été clair et c'est pas trop chiant à comprendre !
Merci en tout cas de prendre le temps de me répondre