J'ai des bibliothèques statiques C++ et un exécutable qui les utilise, chacune se trouve dans un dossier séparé. Chaque tel projet peut être construit en débogage ou configuration version, lorsque la hiérarchie des fichiers est comme ce qui suit: Static_Lib1 \ Debug \ staticlib1.a
Static_Lib1 \ Release \ staticlib1.a
// même pour toutes les autres bibliothèques statiques
Exécutable \ Debug \ exécutable
Exécutable \ Libération \ exécutableMise à jour des variables dans l'étiquette du fichier makefile
Tous les dossiers de débogage et de publication contiennent des fichiers Make.
J'essaye d'écrire un makefile externe pour appeler chacun des projets internes, en utilisant la configuration choisie - debug ou release.
Alors, j'ai essayé quelque chose comme:
CFG= #empty declaration
PROJECTS=Static_Lib1 Static_Lib2 ... Executable
all:
release #default config is release
release:
CFG = Release
make build-all
debug:
CFG = Debug
make build-all
build-all:
make clean
$(foreach projectName, $(PROJECTS), cd $(projectName)/$(CFG) && make all;)
Mais je reçois cette sortie en essayant, par exemple, pour exécuter make debug
:
CFG = Debug
make: CFG: Command not found
make: *** [debug] Error 127
Comment puis-je résoudre ce problème?
Mon système d'exploitation est SLED 11x64.
Merci d'avance!
Merci beaucoup! –
C'est inutile. Tout ce qui fait est de rappeler le makefile. Vous pouvez également vous débarrasser des cibles de lancement et de débogage et appeler 'make CFG = WHATEVER build-all' directement –