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

Linux Discussion :

Problème de makefile


Sujet :

Linux

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Par défaut Problème de makefile
    Bonjour,

    J'utilise eclipe comme IDE et pour compiler, je dois faire un makefile. J'ai lu le tuto sur le makefile et pour 4 fichiers sa marchais mais plus à 6...

    voici la commande que je dois traduire dans mon makefile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++  -o jeu main.cpp jeu.cpp afficheMap.cpp jeu.h afficheMap.h  -L/usr/X11R6/lib -lSDL -lSDLmain -lSDL_image
    Voici mon makefile apres plusieurs modification:
    CC=g++
    EXEC=main
    LDFLAGS=-L/usr/X11R6/lib -lSDL -lSDLmain -lSDL_image

    all: $(EXEC)

    afficheMap.o: afficheMap.cpp
    $(CC) -o afficheMap.o afficheMap.cpp $(LDFLAGS)

    jeu.o: jeu.cpp
    $(CC) -o jeu.o jeu.cpp $(LDFLAGS)

    main: afficheMap.o jeu.o main.cpp
    $(CC) -o main.cpp afficheMap.o afficheMap.cpp $(LDFLAGS)
    Le fichier constante.h est appeler par jeu.h et par afficheMap.h, main.cpp appelle jeu.h qui appelle son .cpp et jeu.cpp appelle afficheMap.h qui lui aussi appelle son .cpp

    Voici l'erreur que me produit le makefile ci-haut:
    make -k all
    g++ -o afficheMap.o afficheMap.cpp -L/usr/X11R6/lib -lSDL -lSDLmain -lSDL_image
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/crt1.o: In function `_start':
    g++ -o jeu.o jeu.cpp -L/usr/X11R6/lib -lSDL -lSDLmain -lSDL_image
    (.text+0x18): undefined reference to `main'
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [afficheMap.o] Erreur 1
    /usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/crt1.o: In function `_start':
    (.text+0x18): undefined reference to `main'
    /tmp/ccqUDuDx.o: In function `jouer(SDL_Surface*)':
    jeu.cpp.text+0x307): undefined reference to `afficheMap(int (*) [12], SDL_Surface*, SDL_Surface*, SDL_Surface*, SDL_Surface*, SDL_Surface*, SDL_Surface*)'
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [jeu.o] Erreur 1
    make: La cible « all » n'a pas pu être refabriquée à cause d'erreurs.
    Merci de votre aide

  2. #2
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Rajoute l'option -c quand tu veux générer des .o
    De plus l'option -o est immédiatement suivie du nom du fichier de sortie. Autrement dit, si tu arrives à tout compiler jusqu'au main.cpp tu vas écraser ton fichier main.cpp. Pas génial hein ?

    De plus, si tu ne fait que compiler sans linker (donc avec l'option -c), l'option -o n'est pas nécessaire, par défaut le nom du fichier de sortie c'est le nom du fichier source avec .o à la place de l'ancienne extension.

  3. #3
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Et les LDFLAGS ne sont pas utiles pour les lignes de commandes avec "-c", ie celles qui génèrent les ".o".

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Par défaut
    Merci sa marche bien maintenant

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

Discussions similaires

  1. [Makefile] Problème lancement Makefile dans Shell
    Par domiq44 dans le forum Systèmes de compilation
    Réponses: 14
    Dernier message: 29/11/2006, 15h17
  2. Problème de makefile (Eclipse CDT)
    Par david cap dans le forum Eclipse C & C++
    Réponses: 3
    Dernier message: 23/11/2006, 11h17
  3. Problème avec Makefile
    Par beb30 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 02/03/2006, 15h02
  4. [Dev-cpp]Problème de Makefile
    Par gege2061 dans le forum Dev-C++
    Réponses: 2
    Dernier message: 15/02/2005, 11h19
  5. Problème avec makefile
    Par snooopppp dans le forum Systèmes de compilation
    Réponses: 3
    Dernier message: 22/02/2004, 15h46

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