我有以下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 关注
- 235 浏览
添加回答
举报
0/150
提交
取消