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 de compilation sous Ubuntu 16.04


Sujet :

SFML

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Problème de compilation sous Ubuntu 16.04
    Bonjour à tous,

    Je suis nouveau sur ce Forum et je commence également la programmation en c++.
    Je viens de me lancer et j'ai donc installé la librairie SFML qui était celle qui me convenait le mieux, et je me suis mis à coder.
    Arrivé à une certaine étape (après avoir fait plusieurs essaies de codes et fait des essaies de makefiles) je voulais importer une texture (sprite) j'ai donc codé comme tel (désolé pour l'indentation, je commence juste ) :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    #pragma region includes
    #include <SFML/Graphics.hpp>
    #include <iostream>
    #include <cstdlib>
    #include <string>
    #pragma endregion includes
     
     
    #pragma region variables
    sf::RenderWindow window;
    sf::CircleShape cercle;
    sf::Texture perso;
    sf::Sprite sprite_perso;
    int speed = 2;
    #pragma endregion variables
     
    int main()
    {
        //Create  a Window in 800*600
        window.create(sf::VideoMode(800, 600), "Premier Jeu !");
        window.setFramerateLimit(60);
     
        cercle.setFillColor(sf::Color(100,250,50));
        cercle.setRadius(50);
        cercle.setPosition(100,100);
     
        if (!perso.loadFromFile("player.png"))
        {
                //erreur...
        }
        perso.setSmooth(true);
     
        sprite_perso.setTexture(perso);
     
        while (window.isOpen())
        {
            sf::Event event;
            while (window.pollEvent(event))
            {
                if (event.type == sf::Event::Closed)
                    window.close();
            }
            /*****************Mouvements*************************/
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
        {
            cercle.move(0, -speed);
        }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
        {
            cercle.move(0, speed);
        }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
        {
            cercle.move(-speed, 0);
        }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
        {
            cercle.move(speed, 0);
        }
            window.draw(cercle);
            window.draw(sprite_perso);
            window.display();
            window.clear();
     
        }
     
        return 0;
    }
    mon makefile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    programme: main.cpp
        g++ main.cpp -o programme -lsfml-graphics -lsfml-system -lsfml-window
    et quand je lance la commande make dans mon terminal cette erreur s'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    nezael@Acer-Aspire:~/Documents/C++$ make
    g++ main.cpp -o programme -lsfml-graphics -lsfml-system -lsfml-window
    /tmp/ccDEKWXE.o : Dans la fonction « main » :
    main.cpp:(.text+0x1f8) : référence indéfinie vers « sf::Texture::loadFromFile(std::string const&, sf::Rect<int> const&) »
    collect2: error: ld returned 1 exit status
    Makefile:2 : la recette pour la cible « programme » a échouée
    make: *** [programme] Erreur 1
    J'ai donc demander à un ami qui a compilé et pour lui tout marche niquel, je ne voit pas d'où peut provenir cette erreur personnellement et lui non plus c'est pour cela que je fais appel à vous aujourd'hui ! J'espère que vous pourrez m'aider car pour l'instant cette erreur me bloque
    Merci d'avance.

    Cordialement,
    Nezael


    Version SFML: 2.3.2
    Version Ubuntu: 16.04
    Liens Vers le Projet : https://github.com/NezaelHD/FirstGame

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    En effet, cela compile aussi chez moi. Peut être vous devriez activer l'option -v de gcc pour avoir "quelques" infos en plus ?
    Sinon, en termes de coding, les variables globales sont déconseillées.

    Un autre test que je ferais, serait de mettre comme commande pour la compilation :
    g++ main.cpp -o programme -lsfml-system -lsfml-window -lsfml-graphics
    (Passer sfml-graphics en dernier). Mais cela m'étonnerai.

    Quelle version de GCC utilisez vous ?
    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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse rapide.

    En effet mon ami m'avais conseillé de passer le -sfml graphics derrière mais rien de plus.
    Pourquoi les variables globales sont elles déconseillées ?
    Sinon Niveau GCC voilà les Infos Globales:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    nezael@Acer-Aspire:~/Documents/C++$ gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.3.1-14ubuntu2.1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
    gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2.1)
    Et les Infos GCC du 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    nezael@Acer-Aspire:~/Documents/C++$ g++ main.cpp -o programme -v -lsfml-system -lsfml-window -lsfml-graphics
    Using built-in specs.
    COLLECT_GCC=g++
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.5-4ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
    gcc version 4.8.5 (Ubuntu 4.8.5-4ubuntu2) 
    COLLECT_GCC_OPTIONS='-o' 'programme' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
     /usr/lib/gcc/x86_64-linux-gnu/4.8/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE main.cpp -quiet -dumpbase main.cpp -mtune=generic -march=x86-64 -auxbase main -version -fstack-protector -Wformat -Wformat-security -o /tmp/ccDhhVgf.s
    GNU C++ (Ubuntu 4.8.5-4ubuntu2) version 4.8.5 (x86_64-linux-gnu)
    	compiled by GNU C version 4.8.5, GMP version 6.1.0, MPFR version 3.1.3-p5, MPC version 1.0.3
    warning: MPFR header version 3.1.3-p5 differs from library version 3.1.4.
    GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
    ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/4.8"
    ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
    ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/include/c++/4.8
     /usr/include/x86_64-linux-gnu/c++/4.8
     /usr/include/c++/4.8/backward
     /usr/lib/gcc/x86_64-linux-gnu/4.8/include
     /usr/local/include
     /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
     /usr/include/x86_64-linux-gnu
     /usr/include
    End of search list.
    GNU C++ (Ubuntu 4.8.5-4ubuntu2) version 4.8.5 (x86_64-linux-gnu)
    	compiled by GNU C version 4.8.5, GMP version 6.1.0, MPFR version 3.1.3-p5, MPC version 1.0.3
    warning: MPFR header version 3.1.3-p5 differs from library version 3.1.4.
    GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
    Compiler executable checksum: f5d21a1dc5d9b70befc71d2006b2e7c5
    COLLECT_GCC_OPTIONS='-o' 'programme' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
     as -v --64 -o /tmp/ccT9u6XQ.o /tmp/ccDhhVgf.s
    Version de l'assembleur GNU 2.26 (x86_64-linux-gnu) utilisant la version BFD (GNU Binutils for Ubuntu) 2.26
    COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/
    LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/
    COLLECT_GCC_OPTIONS='-o' 'programme' '-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
     /usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o programme /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. /tmp/ccT9u6XQ.o -lsfml-system -lsfml-window -lsfml-graphics -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
    /tmp/ccT9u6XQ.o*: Dans la fonction «*main*»*:
    main.cpp:(.text+0x1d8)*: référence indéfinie vers «*sf::Texture::loadFromFile(std::string const&, sf::Rect<int> const&)*»
    collect2: error: ld returned 1 exit status

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Quelle version de la SFML avez vous installé ?
    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
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    2.3.2 comme marquer dans le premier message

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Etes vous sur que vous n'avez pas une version 1.X qui vienne parasiter la compile. C'est juste une hypothèse.
    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.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Non il n'y a aucune autre version :/
    Je ne vois vraiment pas d'où peut venir le problème...

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Malheureusement, je suis à cours d'idée. Limite, je dirai : essayez de compiler la SFML vous même. Ou alors, c'est juste une signature de fonction qui coincide pas ...
    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.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Pourriez-vous m'expliquer comment puis-je compiler moi même la SFML ? Car comme dit plus haut je débute 😅
    Merci

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Il y a ce guide : http://www.sfml-dev.org/tutorials/2....with-cmake.php
    Il faut installer au minimum le paquet cmake, et les dépendances (qui s'afficheront lorsque vous lancerez cmake).
    La procédure sera proche de :
    cd dossier_source
    cmake .
    #Installation des dépendances par le gestionnaire de paquet + relancer cmake.
    make
    # Pas obligatoire, mais peut être plus simple à utiliser SFML par la suite
    sudo make install
    Aussi, avant de faire cela, je désinstallerai le SFML installer par le gestionnaire de paquets.
    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.

Discussions similaires

  1. [Free Pascal] Problème de compilation sous Ubuntu
    Par Loupsio dans le forum Free Pascal
    Réponses: 1
    Dernier message: 02/09/2011, 08h40
  2. [Flex / Bison] Problème de compilation sous Visual C++
    Par levalp dans le forum Générateurs de compilateur
    Réponses: 1
    Dernier message: 25/07/2006, 15h26
  3. Problème d'affichage sous Ubuntu
    Par bigben89 dans le forum OpenGL
    Réponses: 9
    Dernier message: 18/05/2006, 12h06
  4. problème de compilation sous XP/Centrino?
    Par RalphH dans le forum C++Builder
    Réponses: 19
    Dernier message: 23/10/2004, 16h12
  5. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52

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