因爲我使用一個名爲VERSION_NUMBER一個變量,它是從構建環境在下面的表格通過我的make文件:GNU下的特殊字符去除使
VERSION_NUMBER =「#258」
現在,我想在make下從該字符串中提取數字258,但由於特殊字符'#',我無法這樣做。
我試過以下,它的工作原理(現在假設變量在Makefile中本地定義,而不是從構建環境通過):
VERSION_NUMBER:='\#258'
empty:=
quote:='
space:= $(empty) $(empty)
pound:=\#
extract:= $(subst $(quote),$(empty),$(VERSION_NUMBER))
$(info $$extract is [${extract}]) # Debug print
extract:= $(subst $(pound),$(empty),$(extract))
$(info $$extract is [${extract}]) # Debug print
這打印出以下內容:
$extract is [#258]
$extract is [258]
的問題但是在這裏我使用的VERSION_NUMBER作爲「\#258」,而不是「#258」,不幸的是我不能讓它在任何其他西澳工作年。
我不明白到底什麼是你的問題。看來你已經有了一個可行的解決方案。無論如何,如果你想'make'不要解釋一個'#'符號,用反斜槓轉義它是正確的解決方案,所以我不會搜索其他東西。 – Tim
問題是構建系統提供了一個字符串並且未經轉義的'#'。但是,我提出的解決方案使用了一個轉義的'#'。因此,如果有可能,問題就變成在makefile中將未轉義的輸入字符串('#258'')修改爲轉義字符(''\#258'')? – scorpGoku
現在你想添加反斜槓?爲什麼要添加它?看到我的答案,從外部輸入的行爲將與在Makefile中聲明的變量相同。 – Tim