Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 19 sur 19
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut Problème "undefined reference to"

    Bonjour à tous, j'ai un problème avec mon programme dont je ne comprend pas l'origine.
    J'ai créé une petite librairie statique grâce à la SDL (qui compile sans problème), et j'ai voulu la tester pour vérifier qu'elle fonctionne correctement. J'ai donc copié le fichier .lib et les headers dans les dossiers correspondant de mon IDE (Code::Blocks) sans oublier ensuite de linker le .lib. Malheureusement, j'obtiens trois erreurs similaires, en voici une :
    Code :
    1
    2
    3
    4
    5
    In function 'Window' :
    l.8  undefined reference to 'SDL_SetVideoMode'
    l.10 undefined reference to 'SDL_SetVideoMode'
    l.8  undefined reference to 'SDL_SetVideoMode'
    l.10 undefined reference to 'SDL_SetVideoMode'
    Mon main de test :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include "Engine.h"
    #include "Window.h"
     
    int main (int argc, char* argv[])
    {
        Engine engine;
        Window mainWindow(200, 200);
        return 0;
    }
    Et le code qui merde ne marche pas :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Window::Window(int width, int height, bool fullscreen)
    {
        if(fullscreen)
            m_screen = SDL_SetVideoMode(width, height, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); // Ca bloque
        else
            m_screen = SDL_SetVideoMode(width, height, 32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN); // Et ça aussi
     
        // Suite du code
    }
    Tous les headers nécessaires sont inclus (notamment <SDL.h>).

    J'attends vos réponses. Merci d'avance et bonne fêtes !

  2. #2
    Membre habitué Avatar de zhouyu
    Homme Profil pro Loïc
    Étudiant
    Inscrit en
    octobre 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Nom : Homme Loïc
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2009
    Messages : 87
    Points : 119
    Points
    119

    Par défaut

    Salut.
    Dans ton code je ne vois pas de :

  3. #3
    Modérateur

    Homme Profil pro Cyrille
    Network programmer
    Inscrit en
    juin 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Nom : Homme Cyrille
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Network programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 2 067
    Points : 4 873
    Points
    4 873

    Par défaut

    Bonsoir,

    En plus de lier ton .lib tu dois lier les .lib de SDL.

  4. #4
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    Je n'ai pas réecrit les include, mais ils sont tous bien bien présents. Ce qui m'embête, c'est que la biblio compile parfaitement, mais pas le main.
    Sinon, toutes les .lib sont liées...

  5. #5
    Expert Confirmé Sénior Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    août 2004
    Messages
    2 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : août 2004
    Messages : 2 300
    Points : 4 432
    Points
    4 432

    Par défaut

    undefined reference to
    c'est une erreur de lien, donc on va dire que les includes sont bons et que ça coince avec les lib.

    As-tu la possibilité de nos montrer la ligne de commande exécutée par C::B lors du link ?

  6. #6
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    Oui, pas de problème, mais ou puis-je le trouver ?

  7. #7
    Expert Confirmé Sénior Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    août 2004
    Messages
    2 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : août 2004
    Messages : 2 300
    Points : 4 432
    Points
    4 432

    Par défaut

    j'ai rarement utilisé C::B
    tu ne l'as pas au dessus de ce que tu nous a posté ?
    In function 'Window' :
    l.8 undefined reference to 'SDL_SetVideoMode'
    l.10 undefined reference to 'SDL_SetVideoMode'
    l.8 undefined reference to 'SDL_SetVideoMode'
    l.10 undefined reference to 'SDL_SetVideoMode'

  8. #8
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    Ah, voici donc :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    -------------- Build: Debug in Essai Moteur ---------------
    Linking console executable: bin\Debug\Essai Moteur.exe
    C:\Program Files (x86)\CodeBlocks\MinGW\lib\Perso\libMoteur 2D.a(Engine.o): In function 'Engine':
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:5: undefined reference to 'Singleton<Engine>::Singleton()'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:11: undefined reference to 'Singleton<Engine>::~Singleton()'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:5: undefined reference to 'Singleton<Engine>::Singleton()'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:11: undefined reference to 'Singleton<Engine>::~Singleton()'
    C:\Program Files (x86)\CodeBlocks\MinGW\lib\Perso\libMoteur 2D.a(Engine.o): In function '~Engine':
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:16: undefined reference to 'Singleton<Engine>::~Singleton()'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:16: undefined reference to 'Singleton<Engine>::~Singleton()'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:16: undefined reference to 'Singleton<Engine>::~Singleton()'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Engine.cpp:16: undefined reference to 'Singleton<Engine>::~Singleton()'
    C:\Program Files (x86)\CodeBlocks\MinGW\lib\Perso\libMoteur 2D.a(Window.o): In function 'Window':
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Window.cpp:8: undefined reference to 'SDL_SetVideoMode'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Window.cpp:10: undefined reference to 'SDL_SetVideoMode'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Window.cpp:8: undefined reference to 'SDL_SetVideoMode'
    C:/Users/***/Documents/***/Informatique/C++/Programmes/Moteur 2D/Window.cpp:10: undefined reference to 'SDL_SetVideoMode'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    12 errors, 0 warnings

  9. #9
    Expert Confirmé

    Avatar de germinolegrand
    Homme Profil pro Germino Legrand
    Développeur de jeux vidéo
    Inscrit en
    octobre 2010
    Messages
    731
    Détails du profil
    Informations personnelles :
    Nom : Homme Germino Legrand
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : octobre 2010
    Messages : 731
    Points : 3 934
    Points
    3 934

    Par défaut

    Il y a 2 lib SDL à linker en plus de ta lib perso. SDL et SDLmain de mémoire...
    Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.

    N'oubliez pas de marquer votre sujet comme et de mettre des aux messages apportant un plus à votre discussion.

    Si vous souhaitez participer à la rubrique C++, ne me contactez plus !

  10. #10
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    C'est déjà fait

  11. #11
    Expert Confirmé

    Avatar de germinolegrand
    Homme Profil pro Germino Legrand
    Développeur de jeux vidéo
    Inscrit en
    octobre 2010
    Messages
    731
    Détails du profil
    Informations personnelles :
    Nom : Homme Germino Legrand
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : octobre 2010
    Messages : 731
    Points : 3 934
    Points
    3 934

    Par défaut

    Dans le bon ordre ?
    Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.

    N'oubliez pas de marquer votre sujet comme et de mettre des aux messages apportant un plus à votre discussion.

    Si vous souhaitez participer à la rubrique C++, ne me contactez plus !

  12. #12
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    C'est fait automatiquement lors de la création du projet. J'ai juste linké la mienne en plus...

  13. #13
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 247
    Points : 118
    Points
    118

    Par défaut

    Tu as ce problème parce que tu fais un bibliothèque statique ou cela te le fait-il aussi quand tu crées un simple projet utilisant la SDL ?

    Si tu es dans le deuxième cas (ça ne marche dans aucun cas) ça m'est arrivé pour de nombreuses bibliothèques dans ce cas n'oublie pas d'ajouter dans settings/compiler and debugger/search directories onglet linker le dossier contenant les .lib, sinon je ne peux pas trop t'aider ce genre de problème survient pour tellement peu de choses, un chemin de dossier oublié et c'est fichu ^^

    Au fait tu es sur linux ou windows ? (question bête dsl je viens de voir sur quoi tu étais)

  14. #14
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    J'ai fait plusieurs essais et ce problème ne survient qu'avec ma lib, c'est d'ailleurs pour ça que je ne comprends pas... Et je suis sur Windows 7

  15. #15
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 247
    Points : 118
    Points
    118

    Par défaut

    C'est bizarre !
    Bien que je sois très très loin d'être expert dans ce domaine, je te conseillerais de vérifier que tu utilises bien les versions statiques de la sdl j'imagine que ça doit pas être possible d'utiliser les dll dynamiques enfin à vrai dire j'en sais rien

  16. #16
    Modérateur
    Avatar de koala01
    Profil pro Philippe Dunski
    Inscrit en
    octobre 2004
    Messages
    9 686
    Détails du profil
    Informations personnelles :
    Nom : Philippe Dunski
    Âge : 42

    Informations forums :
    Inscription : octobre 2004
    Messages : 9 686
    Points : 15 737
    Points
    15 737

    Par défaut

    Salut,

    Il n'est pas impossible du tout que tu doives indiquer les bibliothèques dans un ordre particulier : soit les bibliothèques SDL avant la tienne, soit la tienne avant les bibliothèques SDL (je ne sais jamais dans quel sens ca va )

    De toutes évidences, l'ordre dans lequel tu as indiqué les bibliothèques n'est pas le bon
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    16 026
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 16 026
    Points : 74 995
    Points
    74 995

    Par défaut

    Bonjour,

    Je propose de partir sur une base que je sais fonctionnelle : http://jeux.developpez.com/telecharg...ur-Code-Blocks
    Vous pouvez soit réutiliser ce code pour rajouter vos fichiers et avoir le projet qui fonctionne, soit juste l'utiliser en exemple
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

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

  18. #18
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    Bon, je vais voir ce que je peux faire. Merci de vos réponses en tout cas...

  19. #19
    Invité de passage
    Homme Profil pro
    Inscrit en
    décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2012
    Messages : 9
    Points : 1
    Points
    1

    Par défaut

    Résolu, il s'agissait effectivement de l'ordre des bibliothèques à linker + un autre problème dans mon code. Merci à tous en tous cas.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •