Makefile中 变量赋值含义
From:? http://hi.baidu.com/linuxking/item/aab87527ac88550a76272c91
作者聯系方式:李先靜 <xianjimli at hotmail dot com>
在Makefile中,對變量的賦值,有好幾種方式,它們的意義、使用的場合都各不相同,初學者往往比較迷惑。這里對它們的用法簡要介紹一下。
<!--[if !supportEmptyParas]-->
= 遞歸展開賦值,這是默認的賦值方式。Makefile是兩遍解析的,若一個變量引用另外一個變量,兩個變量定義的位置,誰在前誰在后沒有任何關系,都能達到同樣的效果。如:
SUBARCH=arm
ARCH = $(SUBARCH)
all:
??????? @echo $(ARCH)
輸出:
arm
而
ARCH = $(SUBARCH)
SUBARCH=arm
all:
??????? @echo $(ARCH)
也輸出:
arm
<!--[if !supportEmptyParas]-->?<!--[endif]-->
?= 如果沒有初始化該變量,就給它賦上默認值。如:
ARCH=armARCH ?= i386
all:
??????? @echo $(ARCH)
輸出:
arm
而
ARCH ?= i386all:
??????? @echo $(ARCH)
輸出:
i386
<!--[if !supportEmptyParas]-->?<!--[endif]-->
:= 直接賦值,不會遞歸展開,若引用的變量不存在,就展開為空串。如:
SUBARCH=arm
ARCH = $(SUBARCH)
all:
??????? @echo $(ARCH)
輸出:
arm
而
ARCH = $(SUBARCH)
SUBARCH=arm
all:
??????? @echo $(ARCH)
輸出:
(空串)
<!--[if !supportEmptyParas]-->?<!--[endif]-->
<!--[if !supportEmptyParas]--><!--[endif]-->
+= 字符串連接
總結
以上是生活随笔為你收集整理的Makefile中 变量赋值含义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java反射学习总结五(Annotati
- 下一篇: libubox