2017-05-25 46 views
1

如果我有規則,其中OBJECTS_C是目標文件沒有路徑列表:如何創建一個規則來標識所包含目錄中擴展名爲.c的所有文件,作爲makefile規則的先決條件?

$(OBJECTS_C): %.o: %.c 
    do stuff 

我怎麼可以指定%.c文件應該匹配相同文件莖,但Path可以做什麼?

讚我假設我有source/file1.c和source/dir1/file2.c 我想修改規則,使file1.o和file2.o在當前目錄上創建,而不管源文件的位置在包含的目錄中。

回答

1

您可以使用VPATH(作爲變量或使用vpath指令)將所有相關目錄添加到搜索先決條件的目錄列表中。

(VPATH是所有先決條件,VPATH只對那些匹配它被賦予的圖案)

Here是相關文檔。

這就是說,要小心名稱衝突:如果您有具有相同名稱但位於不同目錄中的src文件,則可能會遇到麻煩。更好的方法是讓您的構建樹反映您的源代碼樹。

相關問題