有没有办法从编译过程中排除一些文件?甚至整个目录?有没有办法从makefile中排除某些源文件或文件夹?
我相信makefile使用find
找到src
目录中的所有源文件。有没有办法指定从find
忽略的目录?像一些开关,或者什么?
有没有办法从编译过程中排除一些文件?甚至整个目录?有没有办法从makefile中排除某些源文件或文件夹?
我相信makefile使用find
找到src
目录中的所有源文件。有没有办法指定从find
忽略的目录?像一些开关,或者什么?
这完全取决于你的makefile是如何写入的。您可以使用条件,以避免增加在一定条件下文件成立:
ifeq ($(OS),win32)
SOURCES += foo_win32.cpp
else
SOURCES += foo_posix.cpp
endif
...
foo: $(SOURCES)
如果你阐述了几分正是你想做的事,你可能会得到更好的答案。
编辑:如果文件被运行的发现确定的,您可以排除的文件/目录从发现这样的:
SOURCES:=$(shell find srcdir -type f | grep -v dirtoexclude)
当然 - 不要在你的Makefile中指定它们。
除了要排除的内容外,您可以创建单独的目标。
它们将如何从'find'命令中过滤掉? – Geo 2009-10-07 13:10:14
find命令具有排除文件的语法,但它相当复杂。在这些情况下,我通常通过grep传递查找输出:“find ... | grep -v somedir”。 – JesperE 2009-10-07 13:44:29
BTW:使用find来确定要编译哪个源文件是不好的做法,因为任何恰好驻留在源代码树中的文件都将包含在内。你应该考虑一个静态列表。 – JesperE 2009-10-07 13:45:55