我的專案目錄如下所示:
/project
Makefile
/src
main.c
foo.c
bar.c
/exec
main
foo
bar
我希望 Makefile 為.c檔案/src夾中的每個檔案生成一個可執行檔案并將可執行檔案放在檔案/exec夾中。
這是我第一次使用 Makefile,我嘗試了下面的代碼,但它在檔案/src夾中生成了 exec 檔案,我希望它們在/exec檔案夾中
CFLAGS := -Wall -g
SRC_DIR := src
EXEC_DIR := exec
SRC_FILES := $(wildcard $(SRC_DIR)/*.c)
all: $(SRC_FILES:.c=)
.c:
gcc $(CFLAGS) $< -o $(EXEC_DIR)/$@
uj5u.com熱心網友回復:
您需要考慮不同的路徑。
一種可能的解決方案是:
CFLAGS := -Wall -g
SRC_DIR := src
EXEC_DIR := exec
SRC_FILES := $(wildcard $(SRC_DIR)/*.c)
all: $(SRC_FILES:$(SRC_DIR)/%.c=$(EXEC_DIR)/%)
$(EXEC_DIR)/%: $(SRC_DIR)/%.c
gcc $(CFLAGS) $< -o $@
提示:
您可以使用make -n來檢查 make將執行哪些命令,但不實際執行它們。
此外,它的選項-p(列印資料庫)和-d(除錯)有助于除錯您的 Makefile。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/361065.html
標籤:C linux 海湾合作委员会 生成文件 gnu-make
