2009-10-07 114 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

除了要排除的內容外,您可以創建單獨的目標。

相關問題