在makefile中,写法有什么区别
define VAR =
...
...
endef
Run Code Online (Sandbox Code Playgroud)
和写作
define VAR
...
...
endef
Run Code Online (Sandbox Code Playgroud)
请注意,后者缺少=在线define。两者都被 Gnumake 接受,但它们似乎没有表现出相同的行为(对我来说,我发现使用后者可以达到我想要的效果)。
什么时候应该使用哪种形式?
它们之间没有区别:都创建递归多行变量值。
不过,有一个区别:前一个版本(带有等号)是在 GNU make 3.82(2010 年发布)中引入的。如果您仍在使用之前的 GNU make 版本,则此语句:
define FOO =
bar
enddef
Run Code Online (Sandbox Code Playgroud)
创建一个名为FOO =, not的变量FOO(这可能就是它似乎不适合您的原因)。
在这里添加赋值运算符的功能确实可以让您可以使用其他运算符,例如:=, ?=,+=与多行变量,这是您以前无法做到的。
但如果没有指定运算符,则默认情况下总是创建一个普通的递归变量。
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |