如何在配方中使用多行變量?如何使用多行變量
文件名:多行變量
define foo =
echo welcome
endef
export foo
all:
echo $(foo)
我得到下面的輸出。但我期望'歡迎'打印。
$ make -f multiple-line-variable
echo
如何在配方中使用多行變量?如何使用多行變量
文件名:多行變量
define foo =
echo welcome
endef
export foo
all:
echo $(foo)
我得到下面的輸出。但我期望'歡迎'打印。
$ make -f multiple-line-variable
echo
SunEric的答案沒有正確地解釋發生了什麼事。添加或不添加@
完全與你沒有看到「歡迎」打印的原因無關。
你最初的例子沒有按預期工作的原因是因爲你正在閱讀最新版本的GNU make(目前GNU make 4.0)的GNU make手冊,可能使用在線手冊,但你使用更老版本的GNU make。這不是一個好主意,因爲本手冊中討論的功能在您使用的GNU版本中不存在。
在這種情況下,變量定義的,這個名字後加賦值操作符的樣式:
define foo =
...
不可用GNU使3.82之前。在make之前的版本中,該語法定義了一個名稱爲字面上的變量foo =
。因此,打印$(foo)
將不會顯示任何內容,因爲未定義變量foo
。
GNU make提供其用戶手冊作爲發行版的一部分:您應該始終閱讀使用的GNU版本附帶的手冊版本,而不是其他版本。
而且,你不需要export
的foo
變量兩種方法,因爲你使用的使你的食譜語法,這樣的外殼永遠不會看到一個foo
變量的任何引用。
試試這個,
$ make -f多行變量 多行變量:6:***缺少分隔符。停止。 –
我敢打賭,你錯過了第6行回顯之前的「tab」空格。 –