我有點使用makefiles的初學者,我正在嘗試爲gcc編寫一個makefile,它接受來自兩個不同目錄(在我的情況下稱爲內核和驅動程序)的輸入,並輸出目標文件一個使用通配符的不同目錄(稱爲tmp)。Makefiles輸出目錄
我寫了這個代碼來獲取輸入文件的名稱和輸出文件
C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c $(DRIVERS_DIR)/*.c)
#Creating a list for object files names
C_OBJ = $(C_SOURCES:.c=.o)
,我使用下面的規則
%.o: %.c $(CC) $(CFLAGS) -c $< -o [email protected]
,但我不能讓輸出目標文件在所需的目錄。文件
以及如何我應該修改規則嗎? 我用下面的一個 '%的.o:%.c的 \t $(CC)$(CFLAGS)-c $ <-o $ @' – 2013-04-27 17:41:07
@PatrickJane,這是一個困難的。既然你只需要一個輸出目錄,那就很困難。我建議你不要那樣做,而是在'tmp'中鏡像輸入目錄結構 - 然後你將每個'.o'文件映射到一個'.c'文件並使你的生活更輕鬆。 – 2013-04-27 17:44:48