Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Débuter
Débuter Forum d'entraide pour débuter en langage de programmation C++. Avant de poster : cours d'initiation au C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 31/12/2012, 18h09   #1
Ebig50
Invité de passage
 
Homme
Inscription : 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 !
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 18h36   #2
zhouyu
Membre habitué
 
Avatar de zhouyu
 
Homme Loïc
Étudiant
Inscription : octobre 2009
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2009
Messages : 83
Points : 129
Points : 129
Salut.
Dans ton code je ne vois pas de :
zhouyu est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/12/2012, 18h48   #3
Bousk
Modérateur
 
Homme Cyrille
Network programmer
Inscription : juin 2010
Messages : 1 539
Détails du profil
Informations personnelles :
Nom : Homme Cyrille
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Network programmer

Informations forums :
Inscription : juin 2010
Messages : 1 539
Points : 4 068
Points : 4 068
Bonsoir,

En plus de lier ton .lib tu dois lier les .lib de SDL.
Bousk est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/01/2013, 11h03   #4
Ebig50
Invité de passage
 
Homme
Inscription : 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
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...
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 11h18   #5
fregolo52
Expert Confirmé
 
Avatar de fregolo52
 
Homme
Développeur C
Inscription : août 2004
Messages : 2 073
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur C

Informations forums :
Inscription : août 2004
Messages : 2 073
Points : 3 998
Points : 3 998
Citation:
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 ?
fregolo52 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 11h23   #6
Ebig50
Invité de passage
 
Homme
Inscription : 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
Oui, pas de problème, mais ou puis-je le trouver ?
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 11h33   #7
fregolo52
Expert Confirmé
 
Avatar de fregolo52
 
Homme
Développeur C
Inscription : août 2004
Messages : 2 073
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur C

Informations forums :
Inscription : août 2004
Messages : 2 073
Points : 3 998
Points : 3 998
j'ai rarement utilisé C::B
tu ne l'as pas au dessus de ce que tu nous a posté ?
Citation:
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'
fregolo52 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 11h37   #8
Ebig50
Invité de passage
 
Homme
Inscription : 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
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
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 12h30   #9
germinolegrand
Rédacteur/Modérateur
 
Avatar de germinolegrand
 
Homme Germino Legrand
Développeur de jeux vidéo
Inscription : octobre 2010
Messages : 364
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 : 364
Points : 1 918
Points : 1 918
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.
germinolegrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 12h36   #10
Ebig50
Invité de passage
 
Homme
Inscription : 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
C'est déjà fait
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 12h39   #11
germinolegrand
Rédacteur/Modérateur
 
Avatar de germinolegrand
 
Homme Germino Legrand
Développeur de jeux vidéo
Inscription : octobre 2010
Messages : 364
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 : 364
Points : 1 918
Points : 1 918
Dans le bon ordre ?
__________________
Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.
germinolegrand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 13h33   #12
Ebig50
Invité de passage
 
Homme
Inscription : 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
C'est fait automatiquement lors de la création du projet. J'ai juste linké la mienne en plus...
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 00h03   #13
Lintel-oo
Membre habitué
 
Homme
Étudiant
Inscription : avril 2011
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 239
Points : 128
Points : 128
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)
Lintel-oo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 09h58   #14
Ebig50
Invité de passage
 
Homme
Inscription : 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
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
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 19h55   #15
Lintel-oo
Membre habitué
 
Homme
Étudiant
Inscription : avril 2011
Messages : 239
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 239
Points : 128
Points : 128
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
Lintel-oo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 05h59   #16
koala01
Modérateur
 
Avatar de koala01
 
Philippe Dunski
Inscription : octobre 2004
Messages : 8 603
Détails du profil
Informations personnelles :
Nom : Philippe Dunski
Âge : 41

Informations forums :
Inscription : octobre 2004
Messages : 8 603
Points : 13 231
Points : 13 231
Envoyer un message via MSN à koala01 Envoyer un message via Skype™ à koala01
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
je ne répondrai à aucune question technique par E-mail, message visiteur ou message privé
Vous avez obtenu votre réponse pensez au bouton en bas de page
koala01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2013, 17h43   #17
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 371
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 : 10 371
Points : 39 567
Points : 39 567
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.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2013, 12h52   #18
Ebig50
Invité de passage
 
Homme
Inscription : 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
Bon, je vais voir ce que je peux faire. Merci de vos réponses en tout cas...
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2013, 18h12   #19
Ebig50
Invité de passage
 
Homme
Inscription : 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
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.
Ebig50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h25.


 
 
 
 
Partenaires

Hébergement Web