0
SRC_DIRS += $(CMM_DIR)
SRC_DIRS += $(ABC_DIR)
VPATH = $(SRC_FILES)
tear_abc123: $(OBJ)/ur23.o
$(CC) $(CFLAGS) -c $(subst tear_,,[email protected]) [email protected] [email protected]_compiletime.c -o [email protected]
在此,在$(CC)之前生成[email protected]_compiletime.c(比如說tear_abc123_compiletime.c)。使拋出一個錯誤,沒有找到abc123.c。其中abc123.c存在於$(ABC_DIR)中。爲什麼vpath無法找到c文件。
1)行'VPATH $ @。C $(SRC_FILES)'是沒有意義的取代,也沒有等號,所以沒有分配。 2)'VPATH'必須包含包含源文件的文件夾的路徑,而不是源文件的路徑。 3)閱讀[Makefile的規則](http://make.mad-scientist.net/papers/rules-of-makefiles/)。 4)你想要的是'VPATH = $(SRC_DIRS)',其中'SRC_DIRS'保存包含你的源的不同文件夾。 – Tim
我改變了,VPATH仍然無法找到該文件。拋出錯誤abc123.c沒有這樣的文件或目錄 –
在你的編輯中'VPATH'取'SRC_FILES'而不是'SRC_DIRS'的值。請閱讀[VPATH文檔](https://www.gnu.org/software/make/manual/html_node/General-Search.html)。 VPATH是'make'查找源文件的地方列表。如果你不告訴make你的消息來源,它不會找到它們。 – Tim