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] Supprimer les fichiers intermédiaires


Sujet :

Systèmes de compilation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Par défaut [Makefile] Supprimer les fichiers intermédiaires
    Bonjour,

    Bon tout d'abord, j'ai cherché à utiliser un mode de compilation portable, donc pour moi les solution s'appelle make.
    J'ai regardé comment ça fonctionnait, et j'ai arrangé ça à mon projet. Lorsque j'utilise la commande make, les fichiers sont compilés, l'exécutable est créé, enfin bref ça fonctionne, mais je voudrais aussi supprimer les fichiers *.o intermédiaires. J'ai vu plusieurs explications la dessus, mais rien à faire. Lorsque je recompile tout, je me retrouve avec les fichiers *.o. Je ne sais pas ce que j'ai oublié.

    Lorsque j'utilise make puis make clean ça fonctionne correctement, mais j'aimerais pouvoir tout faire en un seul appel.

    Voila ce que j'ai mis dans mon Makefile:

    Code Makefile : 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
    CFLAGS=-Wall -ansi
    LDFLAGS=-Wall -ansi
    EXEC=Indenteur
     
    all: $(EXEC)
     
    Indenteur: tools.o config.o html.o main.o
    	@$(CC) -o Indenteur tools.o config.o html.o main.o $(LDFLAGS)
     
    tools.o: tools.c inc/tools.h
    	@$(CC) -o tools.o -c tools.c $(CFLAGS)
     
    config.o: config.c inc/config.h inc/tools.h
    	@$(CC) -o config.o -c config.c $(CFLAGS)
     
    html.o: html.c inc/config.h inc/tools.h inc/html.h
    	@$(CC) -o html.o -c html.c $(CFLAGS)
     
    main.o: main.c inc/config.h inc/tools.h inc/html.h
    	@$(CC) -o main.o -c main.c $(CFLAGS)
     
     
    .PHONY: clean mrproper
     
    clean:
    	rm -rf *.o
     
    mrproper: clean
    	rm -rf $(EXEC)

    Je rajoute aussi une archive des sources avec le Makefile dedans, pour que vous puissiez le tester.

    Merci d'avance, et bon développement à tous
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    et tu n'aura plus rien

  3. #3
    Membre émérite Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Par défaut
    Je te remercie, mais entre tant j'ai trouvé plus simple, et toujours en tapant simplement make :

    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
    CC=gcc
    CFLAGS=-Wall -ansi
    LDFLAGS=-Wall -ansi
    EXEC=Indenteur
    SRC=src/
    
    all: $(EXEC) clean
    
    Indenteur: tools.o config.o html.o main.o
    	@$(CC) -o Indenteur $(SRC)tools.o $(SRC)config.o $(SRC)html.o $(SRC)main.o $(LDFLAGS)
    	@echo "-> Indenteur built"
    
    tools.o: $(SRC)tools.c $(SRC)inc/tools.h
    	@$(CC) -o $(SRC)tools.o -c $(SRC)tools.c $(CFLAGS)
    
    config.o: $(SRC)config.c $(SRC)inc/config.h $(SRC)inc/tools.h
    	@$(CC) -o $(SRC)config.o -c $(SRC)config.c $(CFLAGS)
    
    html.o: $(SRC)html.c $(SRC)inc/config.h $(SRC)inc/tools.h $(SRC)inc/html.h
    	@$(CC) -o $(SRC)html.o -c $(SRC)html.c $(CFLAGS)
    
    main.o: $(SRC)main.c $(SRC)inc/config.h $(SRC)inc/tools.h $(SRC)inc/html.h
    	@$(CC) -o $(SRC)main.o -c $(SRC)main.c $(CFLAGS)
    
    clean:
    	@rm -rf src/*.o
    
    rmexec:
    	@rm -rf $(EXEC)
    Merci quand même

  4. #4
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    oui mais l'inconveniant en fesant ce que tu fait est qu'a chaque fois que tu recompile ton programme tu recompiles tout!!!
    etant donné que ton programme n'as pas l'air enorme ca va par contre imagine si pour compilé une librairie comme wxWidgets si a chaque fois il fallait recommencé! tu en a pour 20 minutes a chaque fois!!!
    donc je te conseil de plutot faire ton make clean all je pense que ce serait plus judicieux!

  5. #5
    Membre émérite Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par défaut
    Je n'avais pas tout lu mais un make Indenteur et c'est bon! tu recompile juste les .o pour les sources modifiés!

  6. #6
    Membre émérite Avatar de Ceylo
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 216
    Par défaut
    Le but était simplement de mettre à disposition un mode de compilation simple et portable. Le makefile était donc destiné à être utilisé très peu de fois. D'habitude j'utilise l'EDI de mon Mac (Xcode) très simple et très pratqiue à utiliser. Donc dans ce cas, cela convient bien .

Discussions similaires

  1. Supprimer ou ne pas faire apparaître les fichiers intermédiaires
    Par floyd973 dans le forum Programmation (La)TeX avancée
    Réponses: 2
    Dernier message: 17/08/2014, 22h17
  2. Réponses: 9
    Dernier message: 03/02/2007, 14h58
  3. [batch]supprimer les fichiers créés il y a X jour
    Par norac dans le forum Windows
    Réponses: 6
    Dernier message: 18/10/2006, 14h32
  4. supprimer les fichiers qui ont des mêmes noms
    Par manaboko dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2006, 09h09
  5. [Messenger] Windows me supprime les fichiers envoyés
    Par Oluha dans le forum Messagerie instantanée
    Réponses: 8
    Dernier message: 24/11/2005, 13h19

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