2009-10-07 81 views

回答

2

这完全取决于你的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) 
+0

它们将如何从'find'命令中过滤掉? – Geo 2009-10-07 13:10:14

+1

find命令具有排除文件的语法,但它相当复杂。在这些情况下,我通常通过grep传递查找输出:“find ... | grep -v somedir”。 – JesperE 2009-10-07 13:44:29

+0

BTW:使用find来确定要编译哪个源文件是不好的做法,因为任何恰好驻留在源代码树中的文件都将包含在内。你应该考虑一个静态列表。 – JesperE 2009-10-07 13:45:55

-3

当然 - 不要在你的Makefile中指定它们。

-1

除了要排除的内容外,您可以创建单独的目标。

相关问题