亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何處理make中的特殊情況?

如何處理make中的特殊情況?

揚帆大魚 2021-04-10 18:10:40
我有以下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=$* < $< > $@


查看完整回答
反對 回復 2021-04-16
  • 1 回答
  • 0 關注
  • 264 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號