例如,我有一個持有依賴如何更改makefile變量文件擴展名?
BOARDS:=lance.mcm light.mcm sac.mcm
我需要一個名爲NET這樣
NET:=lance.net light.net sac.net
應設定另一個變量列表的變量,當我改變板變量, NET也應該改變。 例如,如果我將一個新的zor.mcm添加到BOARDS變量中,它應該自動將zor.net添加到NET變量中。
例如,我有一個持有依賴如何更改makefile變量文件擴展名?
BOARDS:=lance.mcm light.mcm sac.mcm
我需要一個名爲NET這樣
NET:=lance.net light.net sac.net
應設定另一個變量列表的變量,當我改變板變量, NET也應該改變。 例如,如果我將一個新的zor.mcm添加到BOARDS變量中,它應該自動將zor.net添加到NET變量中。
我已經找到了最好的解決辦法就是用這種語法:
NET:=$(BOARDS:.mcm=.net)
這將着眼於董事會和改變.mcm到.NET
多一點解釋在[如何更改GNU make中的多個擴展名的列表中每個文件的擴展名?](http://stackoverflow.com/a/12071918/1730674) – askewchan 2015-09-26 21:57:14
作爲替代方案:
BOARDS:=lance.mcm light.mcm sac.mcm
NET:= $(addsuffix .net, $(basename $(BOARDS)))
這將保留文件路徑名內的內容,如果它們匹配模式
這就是爲什麼我首先發布了這個問題。這是完美的,謝謝! – wonton 2012-08-09 17:54:31
Superset:multiple ext ensions:http://stackoverflow.com/questions/12069457/how-to-change-the-extension-of-each-file-in-a-list-with-multiple-extensions-in-g – 2015-07-04 10:27:27