有沒有辦法從編譯過程中排除一些文件?甚至整個目錄?有沒有辦法從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