IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

Problème linkage SFML 2.3.2 et Mingw


Sujet :

SFML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 12
    Par défaut Problème linkage SFML 2.3.2 et Mingw
    Salut à tous

    Voilà, je suis bloqué depuis quelque temps sur un problème alors que je souhaite compiler avec un makefile un petit bout de code pris sur le net avec la bibliothèque SFML 2.3.2

    Je précise que cela compilait et marchait sur Linux (avec un makefile équivalent, et si je n'ai pas glissé une erreur de syntaxe entretemps mais le problème vient du makefile/de l'installation de la SFML). Je suis sur Windows 7, Mingw installé avec codeblock


    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #include <SFML/Graphics.hpp>
     
    using namespace std;
     
    int main(){
     
        sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
        sf::CircleShape shape(100.f);
        shape.setFillColor(sf::Color::Green);
     
        while (window.isOpen()){
            sf::Event event;
            while (window.pollEvent(event)){
                if (event.type == sf::Event::Closed)
                    window.close();
            }
     
            window.clear();
            window.draw(shape);
            window.display();
        }
     
        return 0;
    }

    Le makefile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CPPFLAGS = -I C:\SFML-2.3.2\include
    LDFLAGS = -LC:\SFML-2.3.2\lib -lsfml-graphics -lsfml-window -lsfml-system -DSFML_DYNAMIC
     
    program : main.o
    	g++ ${LDFLAGS} main.o -o program.exe
     
    main.o: main.cpp
    	g++ -c main.cpp ${CPPFLAGS}
    et surtout, la sortie de mon makefile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    g++ -c main.cpp -I C:\SFML-2.3.2\include
    g++ -LC:\SFML-2.3.2\lib -lsfml-graphics -lsfml-window -lsfml-system -DSFML_DYNAMIC main.o -o program.exe
    main.o:main.cpp:(.text+0x145): undefined reference to `_imp___ZN2sf6StringC1EPKcRKSt6locale'
    main.o:main.cpp:(.text+0x175): undefined reference to `_imp___ZN2sf9VideoModeC1Ejjj'
    main.o:main.cpp:(.text+0x1c3): undefined reference to `_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'
    main.o:main.cpp:(.text+0x20d): undefined reference to `_imp___ZN2sf11CircleShapeC1Efj'
    main.o:main.cpp:(.text+0x228): undefined reference to `_imp___ZN2sf5Color5GreenE'
    main.o:main.cpp:(.text+0x232): undefined reference to `_imp___ZN2sf5Shape12setFillColorERKNS_5ColorE'
    main.o:main.cpp:(.text+0x25a): undefined reference to `_imp___ZN2sf6Window5closeEv'
    main.o:main.cpp:(.text+0x27c): undefined reference to `_imp___ZN2sf6Window9pollEventERNS_5EventE'
    main.o:main.cpp:(.text+0x2b8): undefined reference to `_imp___ZN2sf5ColorC1Ehhhh'
    main.o:main.cpp:(.text+0x2d3): undefined reference to `_imp___ZN2sf12RenderTarget5clearERKNS_5ColorE'
    main.o:main.cpp:(.text+0x2f0): undefined reference to `_imp___ZN2sf12RenderStates7DefaultE'
    main.o:main.cpp:(.text+0x304): undefined reference to `_imp___ZN2sf12RenderTarget4drawERKNS_8DrawableERKNS_12RenderStatesE'
    main.o:main.cpp:(.text+0x320): undefined reference to `_imp___ZN2sf6Window7displayEv'
    main.o:main.cpp:(.text+0x32f): undefined reference to `_imp___ZNK2sf6Window6isOpenEv'
    main.o:main.cpp:(.text+0x371): undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'
    main.o:main.cpp:(.text+0x3d1): undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'
    main.o:main.cpp:(.text+0x44b): undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'
    main.o:main.cpp:(.text$_ZN2sf11CircleShapeD1Ev[__ZN2sf11CircleShapeD1Ev]+0xe): undefined reference to `_imp___ZTVN2sf11CircleShapeE'
    main.o:main.cpp:(.text$_ZN2sf11CircleShapeD1Ev[__ZN2sf11CircleShapeD1Ev]+0x1c): undefined reference to `_imp___ZTVN2sf11CircleShapeE'
    main.o:main.cpp:(.text$_ZN2sf11CircleShapeD1Ev[__ZN2sf11CircleShapeD1Ev]+0x2c): undefined reference to `_imp___ZN2sf5ShapeD2Ev'
    collect2.exe: error: ld returned 1 exit status
    make: *** [program] Error 1
    J'ai simplement download la SFML puis je l'ai déplacé et j'ai fait mon makefile ci-dessus. Je précise que j'ai téléchargé plusieurs versions de la SFML, mais j'ai surtout essayé avec la version GCC 4.7.1 TDM (SJLJ) - 32-bit, ce qui semble correct d'après gcc -v et ce que j'ai pu lire sur l'installation avec Mingw/CodeBlock. Du coup je suis complètement perdu

    Merci d'avance à celui qui me répondra

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Salut,

    t'as essayé avec des slash plutôt que des antislash dans les chemins ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 12
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Salut,

    t'as essayé avec des slash plutôt que des antislash dans les chemins ?
    Dans les chemins ? J'ai C/C les chemins, je suis sous windows, et il me semble bien qu'il trouve les chemins et librairie là, sinon j'aurais un autre message d'erreur

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 157
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Avez-vous télécharger les bibliothèques en version 32 bits, ou en version 64 bits ? Si elles sont en 64 bits, le compilateur (qui est en 32bits) va les ignorer, car il ne peux pas les utiliser.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 12
    Par défaut
    Ce que j'ai indiqué en gras est justement la version de la sfml que j'ai téléchargé. Et il le semble bien avoir GCC 32bits, même version.

    Après ça a bien l'air d'être un problème de compatibilité, ou alors j'ai oublié quelque chose dans la ligne de commande. Je reessayerai à nouveau une fois chez moi pour différentes versions de la sfml au cas où et si je trouve rien d'autres.

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 12
    Par défaut
    je me permet de ré-up ce topic, car j'ai vraiment tout essayé... plusieurs versions de la SFML, j'ai même installé une autre version de GCC sans lien avec CodeBlock cette fois ci (Mingw 64 bits SEH) avec la version SFML qui va avec.

    Mais toujours la même erreur "undefined reference to (...)" Même si c'est bien un problème avec le linker, j'ai malgré tout l'impression que le problème ce situe a un autre niveau, peut être un truc tout bête...

    J'ai aussi mis -D SFML_DYNAMIC avec le CPPFLAGS au lieu du LDFLAGS

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème linkage: $LD_LIBRARY_PATH non pris en compte !
    Par DeathMixer dans le forum Débuter
    Réponses: 9
    Dernier message: 07/06/2011, 10h21
  2. Problème linkage error
    Par pjmorce dans le forum Services Web
    Réponses: 0
    Dernier message: 04/02/2010, 14h42
  3. [SmartDevice] Problème linkage?
    Par Fabien25C dans le forum Visual C++
    Réponses: 2
    Dernier message: 20/10/2009, 23h35
  4. Problème linkage lors compilation
    Par scary dans le forum OpenGL
    Réponses: 10
    Dernier message: 14/03/2009, 20h04
  5. Problème internet lors de l'installation de MinGW 5.0.3
    Par eriandel dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/09/2006, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo