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

 C Discussion :

makefile avec ncurses


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut makefile avec ncurses
    Bonsoir, pour le rendu de mon projet je désire fournir un fichier makefile, mais je n'arrive pas à le faire tourner !!!


    Pour tester en ligne de commande, je tapais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -Wall BagChal.c affichage.c action.c deplacement.c -o TEST -lncurses
    Et ça fonctionnait


    Dans mon makefile voici ce qui apparaît

    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
     
    CC=gcc
     
    EXEC=TEST.o 
     
     
    TEST.o:action.o affichage.o BagChal.o deplacement.o 
    	$(CC) -o $(EXEC) action.o affichage.o BagChal.o deplacement.o 
    	./$(EXEC) -lncurses
     
    action.o:action.c affichage.h deplacement.h
    	$(CC) -o action.o -c action.c
     
     
    affichage.o:affichage.c action.h deplacement.h
    	$(CC) -o affichage.o -c affichage.c
     
     
    BagChal.o:BagChal.c affichage.h action.h deplacement.h
    	$(CC) -o BagChal.o -c BagChal.c
     
     
    deplacement.o:deplacement.c affichage.h action.h deplacement.h
    	$(CC) -o deplacement.o -c deplacement.c
     
     
    clean:
    	rm -rf *.o
     
    mrproper:clean
    	rm -rf $(EXEC)

    Mais quand je lance mon make il me sort la liste de toutes les fonctions de ncurses comme s'il ne les connaissait pas !

    Mon problème vient du -lncurses donc...mais je vois pas du tout quoi changer dans ce makefile

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    Ton erreur est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $(CC) -o $(EXEC) action.o affichage.o BagChal.o deplacement.o 
    ./$(EXEC) -lncurses
    Il vaut mieux que tu la trouve toi-même pour apprendre.
    N'oublie pas que la première ligne est l'édition des liens et que la second est l'exécution de ton programme.

  3. #3
    Membre éclairé Avatar de ekieki
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Avril 2014
    Messages : 34
    Par défaut Se simplifier la vie avec les Makefile
    Première remarque : les Makefiles, ça sert à se simplifier la vie pendant le développement du projet, pas après....

    Ensuite, quand on apprend à s'en servir, c'est tout de suite beaucoup plus simple. Il y a des dépendances et des commandes par défaut qui simplifient énormément les écritures.
    Par exemple si on a la bonne habitude de prendre comme nom d'exécutable celui de l'objet qui contient le main, le Makefile se ramène à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CC=gcc
    CFLAGS = -Wall -pedantic
    LDLIBS = -lncurses
     
    action : action.o affichage.o BagChal.o deplacement.o 
     
    # c'est tout
    Suivi par une liste de dépendances qui peut être générée automatiquement (personnellement j'utilise makedepend *.c)

    L'action par défaut concernant la génération d'un exécutable à partir du .o du même nom est d'appeler la "macro" LINK.cc, qui utilise la variable LDLIBS.
    De même, les .o sont produit à partir des .c, quand ils existent, par une commande de compilation qui appelle CC avec les paramètres de CFLAGS.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    Je ne suis pas sûr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $(CC) -o $(EXEC) action.o affichage.o BagChal.o deplacement.o -lncurses
    ./$(EXEC)

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par Amnael Voir le message
    Je ne suis pas sûr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $(CC) -o $(EXEC) action.o affichage.o BagChal.o deplacement.o -lncurses
    ./$(EXEC)
    Test et regarde ce que cela donne

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Août 2011
    Messages : 756
    Par défaut
    C'était effectivement cela, merci pour votre aide !

    Cela dit, j'aimerais rebondir sur ce qui a été dit, que le makefile doit être fait au début pour simplifier le développement.
    C'est surement vrai pour de gros projets.

    Mais sur un petit projet comme ça, c'est quand même plus "simple" d'écrire une ligne de compilation gcc - option listeFichier.c -o nomAppli que de faire un makefile automatique.

    En plus, au bout d'un moment je suppose que le makefile on finit par seulement changer les noms de fichiers et on ne réfléchit plus vraiment au dépendances.

    Vous l'aurez compris je ne suis pas un fan du makefile^^

    Pour moi son seul intérêt c'est de fournir à l'utilisateur de quoi compiler son programme sans connaitre de syntaxe particulière.
    Et encore ça c'est sur du linux, sur un windows on peut directement fournir l'exe sans le code et ça fonctionnera.

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

Discussions similaires

  1. Créer un ficher makefile avec VS
    Par azerty_fr dans le forum VC++ .NET
    Réponses: 0
    Dernier message: 25/07/2007, 15h51
  2. Problème avec Ncurses
    Par Trivol dans le forum C
    Réponses: 3
    Dernier message: 25/01/2007, 09h34
  3. Réponses: 10
    Dernier message: 02/01/2007, 12h07
  4. Makefile avec des conditions
    Par meufeu dans le forum Linux
    Réponses: 2
    Dernier message: 04/08/2006, 11h46
  5. Réponses: 1
    Dernier message: 18/06/2004, 01h12

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