我有以下makefile文件,其中一堆pla文件被處理為a文件$(SRC_DIR)具有dec.pla,inc.pla和更多*.pla文件$(FILES)=所有對應的*.a文件,而不是dec.a我擁有的dec0.a,dec1.a 因為我想生成兩個不同的文件,dec0.a并基于要傳遞的變量進行dec1.a對應dec.pla。我該如何完成?$(FILES):$(TMP_DIR)/%.a : $(SRC_DIR)/%.pla $(BASE_CMD) < $< > $@$(FILES):$(TMP_DIR)/dec0.a : $(SRC_DIR)/dec.pla $(BASE_CMD) -D c=0 < $< > $(TMP_DIR)/dec0.a$(FILES):$(TMP_DIR)/dec1.a : $(SRC_DIR)/dec.pla $(BASE_CMD) -D c=1 < $< > $(TMP_DIR)/dec1.a我嘗試了上面的錯誤proc.make:8: *** target pattern contains no '%'. Stop我在這里想念什么?
1 回答

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
$(FILES): $(TMP_DIR)/dec0.a: $(SRC_DIR)/dec.pla是靜態模式規則...沒有模式。這是無效的make語法。
您可以嘗試:
FILES1 := $(patsubst $(SRC_DIR)/%.pla,$(TMP_DIR)/%.a,$(wildcard $(SRC_DIR)/*.pla))
FILES2 := $(TMP_DIR)/dec0.a $(TMP_DIR)/dec1.a
$(FILES1): $(TMP_DIR)/%.a: $(SRC_DIR)/%.pla
$(BASE_CMD) < $< > $@
$(FILES2): $(TMP_DIR)/dec%.a: $(SRC_DIR)/dec.pla
$(BASE_CMD) -D c=$* < $< > $@
- 1 回答
- 0 關注
- 264 瀏覽
添加回答
舉報
0/150
提交
取消