Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: rafoudiablol le Décembre 08, 2012, 05:26:12 pm

Titre: Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 08, 2012, 05:26:12 pm
Bonjour,

J'ai un petit problème avec le linkage de la SFML sous Qt Creator.
La fenêtre ne s'affiche pas, et la sortie console est inutilisable.
Avec la 1.6, tout marchais pourtant très bien...


Voilà le code concerné, dans le .pro:

QT      -= gui
QT      += core xml

CONFIG  += console

TEMPLATE = app  

LIBS += -LC:/QtSDK/mingw/SFML-2.0/lib -lsfml-graphics
LIBS += -LC:/QtSDK/mingw/SFML-2.0/lib -lsfml-window
LIBS += -LC:/QtSDK/mingw/SFML-2.0/lib -lsfml-system

INCLUDEPATH += "C:/QtSDK/mingw/SFML-2.0/include"
 

Et le main:

int main(int argc, char* argv[])
{
    Window window(VideoMode(800, 600, 32), "Window");

    while(window.isOpen())
    {
        sf::Event event;

        while(window.pollEvent(event))
        {
            if(event.type == Event::Closed)
            {
                window.close();
            }
        }
    }
    return 0;
}

merci  :)
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 08, 2012, 07:28:00 pm
La fenêtre ne s'affiche pas du tout ? Ou bien juste son contenu ?

La sortie console est inutilisable pour quoi ? Je ne vois rien dans ton code qui l'utilise.
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 08, 2012, 11:25:38 pm
Non absolument rien n'est affiché.
Je viens de faire le test avec la 1.6 tout marche avec celle ci...

Concernant la console, c'est à dire que rien ne s'affiche dedans même avec un simple cout quand j'utilise la sfml :(
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 08, 2012, 11:33:02 pm
Donc en gros le programme se lance (c'est sûr ça ?) mais bloque avant même d'arriver dans le main(), et reste bloqué comme ça jusqu'à ce que tu le zigouilles ?
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 09, 2012, 12:09:54 am
Oui le programme se lance, et se termine comme si toutes les instructions avaient été ignorées.
En retirant le code sfml, tout remarche normalement...
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 09, 2012, 08:59:06 am
Donc il se termine ? Il ne bloque pas ?

S'il se termine, lance le avec le debugger et regarde s'il te sort des choses intéressantes.
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 09, 2012, 03:27:53 pm
Je réinstalle Qt et réessaye tout ça après  :-\
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 09, 2012, 03:50:23 pm
Si tu as un gcc 4.7, il faudra aussi recompiler SFML.
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 11, 2012, 06:30:24 pm
La SFML est compilé avec Visual?
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 11, 2012, 06:53:41 pm
Les compilos ne sont pas compatibles entre eux. Y compris les différentes variantes et versions de gcc.
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 11, 2012, 07:30:47 pm
Bon apparement Qt 5.0 n'est pas utilisable tel quel avec MinGW, obligé d'utiliser le magnifique compilateur VS... disont... avec des messages d'erreurs complètement pourris comparé à MinGW,  ;D


Apparement, le programme plante à l'utilisation de la SFML 2.0
Voilà les fichiers du projet Qt:

// .pro

LIBS += "C:/Qt/librairies/SFML-VS10-2.0/lib/sfml-system-d.lib"
LIBS += "C:/Qt/librairies/SFML-VS10-2.0/lib/sfml-window-d.lib"
LIBS += "C:/Qt/librairies/SFML-VS10-2.0/lib/sfml-graphics-d.lib"


INCLUDEPATH += "C:/Qt/librairies/SFML-VS10-2.0/include"

SOURCES += \
    main.cpp
 
#include <SFML/Graphics.hpp>

using namespace sf;

// main.cpp

int main(int argc, char *argv[])
{
    Window app(VideoMode(800, 600, 32), "Hello World");
    Event event;

    while(app.isOpen())
    {
        while(app.pollEvent(event))
        {
            if(event.type == sf::Event::Closed)
            {
                app.close();
            }
        }
    }

    return EXIT_SUCCESS;
}

Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 11, 2012, 08:15:01 pm
Le debugger dit quoi ?
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 11, 2012, 09:00:08 pm
En plus Qt ne fourni pas de débugger avec la 5.0...
Juste un code d'erreur incompréhensible: -1073741515
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 11, 2012, 10:28:40 pm
T'es sûr que tu ne peux pas utiliser MinGW avec Qt 5 ? Ca paraît assez improbable.
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 12, 2012, 12:17:43 pm
Il faudrait recompiler Qt , dans cette version la bibliothèque est compilée avec VS
C'est quand même assez bizarre, je vais essayer.

Je sais pas si qqn a déjà utilisé la SFML avec Qt 5...
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 12, 2012, 12:54:59 pm
Citer
Il faudrait recompiler Qt , dans cette version la bibliothèque est compilée avec VS
Alors vas-y ;)
Ne t'étonne pas trop de ce genre de limitation pour l'instant, n'oublie pas que Qt 5 est encore en RC, il n'y a pas encore de release finale.

Citer
Je sais pas si qqn a déjà utilisé la SFML avec Qt 5...
Aucune différence avec Qt 4, à mon avis. L'API des widgets n'a pas bougé (du moins elle est toujours compatible avec l'API Qt 4).
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 12, 2012, 07:42:56 pm
Bon j'utilise Qt Creator 2.6 avec la bibliothèque Qt 4.8.4, et en compilation MinGW 4.4 (ouf  :P)

L'erreur vient apparemment du linkage des bibliothèques. Quelque chose cloche ici:

LIBS += "C:/Qt/librairies/SFML-2.0/lib"         \
            -lsfml-graphics-d-2                 \
            -lsfml-window-d-2                   \
            -lsfml-system-d-2                   \
 

Je précise que les dll de la SFML se trouvent sous le répertoire lib...
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 12, 2012, 07:58:42 pm
Il n'y a pas de "-2" dans les noms des bibliothèques (uniquement dans les DLLs).
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 12, 2012, 08:00:43 pm
Yes! j'avais en faite téléchargé la mauvaise version de la SFML, c'est-à-dire GCC DW2 à la place de GCC SJLJ..
Je ne comprends pas trop cette différence, mais bon il était noté Code::Blocks entre parenthèses pour SJLJ. Tu pourrais presque en profiter pour rajouter Qt ^^
Titre: Re : Qt / SFML 2.0
Posté par: Laurent le Décembre 12, 2012, 09:25:49 pm
Ca n'a rien à voir, ça dépend uniquement du compilo.

En fait il y a plusieurs variantes de gcc sous Windows, et malheureusement elles ne sont pas compatibles entre elles. Les différences sont variées : support de C++11, modèle de threading, modèle d'exceptions, etc. Et si ta variante de gcc ne correspond pas exactement à celle qui a servi à compiler SFML, tu n'as pas le choix, il faut la recompiler.
Titre: Re : Qt / SFML 2.0
Posté par: rafoudiablol le Décembre 13, 2012, 08:15:35 pm
Je n'ai pas eu besoin de recompiler, dans mon cas sjlj marche parfaitement.

Merci encore ;)