voilà mon soucis: j'utilise makefile et gcc pour la compilation de mon projet:
voici l'arborescence du projet
... etc ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8proj \ bin \ obj \ src \base \fem \base \math
tous les fichier cpp et .h son dans les répertoires src/*
je veux que tous les .o généré aillent dans le répertoire obj (sans arborescence dans ce répertoire là)
src/base/toto.cpp -> obj/toto.o
src/fem/base/titi.cpp -> obj/titi.o
j'utilise un makefile unique se trouvant dans la racine du projet...
l'idée étant de ne pas spécifier explicitement tous les finchiers donc j'ai utiliser:
pour avoir la liste des fichiers sources (c'est pas beau d'ailleur si qqun a mieux, je prends)
Code : Sélectionner tout - Visualiser dans une fenêtre à part SRC = $(sort $(wildcard $(SRCDIR)*.cpp $(SRCDIR)*/*.cpp $(SRCDIR)*/*/*.cpp $(SRCDIR)*/*/*/*.cpp))
j'arrive à avoir la liste des .o correspondant:
maintenant, problème... comment c'ezst t'y qu'on dois faire pour relier les deux tableaux
Code : Sélectionner tout - Visualiser dans une fenêtre à part OBJ = $(patsubst %.cpp,$(OBJDIR)%.o,$(notdir $(SRC)))
j'aurai bien fait un truc style
""" for i=1..nFichier, gcc -o $OBJ(i) $SRC(i) (si 'besoin') """
mais je sais pas comment avec makefile
avec 'besoin'= une des dépendances modifiée...
j'avais presque trouvé avec un for src in $(SRC) mais ensuite on ne peut rien faire avec $$src: pas ce modifications de chaines... c nul!!!
enfin bref, cela m'a tout de même permis d'écrasser tous les contenus de mes fichiers .cpp.... je pensais activé svn après ça, j'aurais du le faire avant!!!









Répondre avec citation

Partager