簡體   English   中英

使用Makefile在編譯中排除源文件

[英]Exclude source file in compilation using Makefile

是否可以在Makefile中使用通配符函數在編譯過程中排除源文件?

就像有幾個源文件一樣

src/foo.cpp
src/bar.cpp
src/...

然后在我的makefile中,

SRC_FILES = $(wildcard src/*.cpp)

但我想排除bar.cpp。 這可能嗎?

如果您正在使用GNU Make,則可以使用filter-out

SRC_FILES := $(wildcard src/*.cpp)
SRC_FILES := $(filter-out src/bar.cpp, $(SRC_FILES))

或者作為一行:

SRC_FILES = $(filter-out src/bar.cpp, $(wildcard src/*.cpp))

使用find for it :)

SRC_FILES := $(shell find src/ ! -name "bar.cpp" -name "*.cpp")

你可以使用Makefile subst功能:

 EXCLUDE=$(subst src/bar.cpp,,${SRC_FILES})

Unix glob模式src / [!b] * .cpp排除所有以b開頭的src文件。

但是,如果bar.cpp是唯一以b開頭的src文件,或者如果您願意將其重命名為以唯一字符開頭,那么這只會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM