Est-il possible d’exclure un fichier source dans le processus de compilation en utilisant une fonction générique dans un Makefile?
Comme avoir plusieurs fichiers sources,
src/foo.cpp src/bar.cpp src/...
Alors dans mon makefile j’ai,
SRC_FILES = $(wildcard src/*.cpp)
Mais je veux exclure le bar.cpp. Est-ce possible?
Si vous utilisez GNU Make, vous pouvez utiliser le filter-out
:
SRC_FILES := $(wildcard src/*.cpp) SRC_FILES := $(filter-out src/bar.cpp, $(SRC_FILES))
Ou comme une ligne:
SRC_FILES = $(filter-out src/bar.cpp, $(wildcard src/*.cpp))
utiliser pour trouver 🙂
SRC_FILES := $(shell find src/ ! -name "bar.cpp" -name "*.cpp")
Vous pouvez utiliser la fonction Makefile subst:
EXCLUDE=$(subst src/bar.cpp,,${SRC_FILES})
Le gabarit Unix src / [! B] *. Cpp exclut tous les fichiers src commençant par b.
Cela ne fonctionnerait que si bar.cpp est le seul fichier src qui commence par b ou si vous souhaitez le renommer pour commencer avec un caractère unique.