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

Systèmes de compilation Discussion :

makeFile pour un projet c++


Sujet :

Systèmes de compilation

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    99
    Points
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Points : 110
    Par défaut makeFile pour un projet c++
    Bonjour .pouvez-vous m'aider a écrire un makeFile pour mon projet C++ j'en ai fait un ,mais il ne fonction pas .En gros j'ai 4 fichiers :
    -constantes.h
    -together.h
    -together.c
    -main.c

    si vous pouvez me donner un exemple de makeFile avec g++ . merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Oui, montre-nous ton Makefile et on te dira ce qui ne va pas.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    99
    Points
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Points : 110
    Par défaut
    ok le voila :
    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
     
    CC=g++
    CFLAGS=-W -Wall -ansi -pedantic -g
    LDFLAGS=
    EXEC=sutup
    SRC=$(wildcard *.cpp)
    OBJ=$(SRC:.cpp=.o)
     
    all: $(EXEC)
     
    sutup: $(OBJ)
    	$(CC) -o $@  $^ $(LDFLAGS)
     
    main.o: main.cpp constantes.h together.h
    	$(CC) -o $@ -c $< $(CFLAGS)
     
    .PHONY: clean mrproper
     
    clean:
    	rm -rf *.o
     
    mrproper: clean
    	rm -rf $(EXEC)

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    99
    Points
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Points : 110
    Par défaut
    Yes . c'est bon j'ai pu corriger le probleme . c'est lié a une définition multiple .En faite je crois que dans les libs du systeme il y a des fichiers qui ce noment main.cpp comme mon fichier ,du coup ça plante la compiltion (les dépandances je crois) . ça fonctionner quand j'ai renomé le fichier main.cpp

  5. #5
    Invité
    Invité(e)
    Par défaut
    les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SRC=$(wildcard *.cpp)
    OBJ=$(SRC:.cpp=.o)
    nécessitent que tu renommes tous tes fichiers .c en .cpp

    d'autre part les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    main.o: main.cpp constantes.h together.h
    	$(CC) -o $@ -c $< $(CFLAGS)
    ne sont pas indispensables et peuvent être supprimées (à part pour la dépendance aux .h mais comme ce n'est pas géré correctement pour le fichier together.o autant les enlever...)

    Enfin, en C++, les variables prédéfinies sont CXX et CXXFLAGS et non CC et CFLAGS.
    Il y a encore moyen d'améliorer mais tu peux déjà utiliser le Makefile suivant :

    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
    CXX=g++
    CXXFLAGS=-Wall -Wextra -g
    LDFLAGS=
    EXEC=sutup
    SRC=$(wildcard *.cpp)
    OBJ=$(SRC:.cpp=.o)
     
    all: $(EXEC)
     
    sutup: $(OBJ)
    	$(CXX) -o $@  $^ $(LDFLAGS)
     
    .PHONY: clean mrproper
     
    clean:
    	rm -rf *.o
     
    mrproper: clean
    	rm -rf $(EXEC)

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2015
    Messages
    99
    Points
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 99
    Points : 110
    Par défaut
    OK merci .j'ai un autre soucis , j'ai compilé un projet sous linux a l'aide d'un makeFile mais quand je suis allé sous windows la compilation ne marche pas avec la commande make

  7. #7
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Points
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Par défaut
    Quelle est l'erreur ?

    La dernière fois que j'ai compilé un projet avec MinGW sous Windows, la commande est mingw32-make.exe (il faut vérifier si la variable Path est correcte pour faire un appel direct.)

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 632
    Points
    30 714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 714
    Par défaut
    Salut,
    Citation Envoyé par G'Optimus Voir le message
    OK merci .j'ai un autre soucis , j'ai compilé un projet sous linux a l'aide d'un makeFile mais quand je suis allé sous windows la compilation ne marche pas avec la commande make
    Je présumes que, sous windows, tu utilise MinGW(-w64) comme compilateur Si oui, c'est normal : make a été renommé en mingw32-make, pour éviter les conflits lorsque l'on utilise l'émulateur linux MSYS (qui sert, entre autre, pour compiler gcc sous windows).

    Du coup, tu as sans doute une erreur du genre de "'make' n'est pas reconnue comme une commande interne ou externe, un programme exécutable ou un fichier de commande", ce qui est normal, vu que make.exe n'existe pas ... Au lieu de lancer la commande "make", lances la commandes "mingw32-make", et tout rentrera dans l'ordre (veilles quand même à ce que le dossier bin de ton installation de MinGW-w64 soit accessible au travers de la variable PATH )
    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

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/01/2015, 20h45
  2. Deux makefile pour un projet C++
    Par Simpom dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 12/08/2010, 18h13
  3. Makefile pour projet c++, plusieurs fichiers, classes
    Par thhomas dans le forum Systèmes de compilation
    Réponses: 2
    Dernier message: 04/08/2009, 17h42
  4. Faire un Makefile pour mon projet perl
    Par rvfranck dans le forum Langage
    Réponses: 9
    Dernier message: 06/11/2008, 06h37
  5. Makefile générique pour compilation projet C
    Par AuraHxC dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 13/12/2007, 22h29

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