1. 程式人生 > >Makefile中的幾種賦值方式

Makefile中的幾種賦值方式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

 轉載時請註明出處和作者聯絡方式
作者聯絡方式:李先靜 <xianjimli at hotmail dot com>

Makefile中,對變數的賦值,有好幾種方式,它們的意義、使用的場合都各不相同,初學者往往比較迷惑。這裡對它們的用法簡要介紹一下。

= 遞迴展開賦值,這是預設的賦值方式。Makefile是兩遍解析的,若一個變數引用另外一個變數,兩個變數定義的位置,誰在前誰在後沒有任何關係,都能達到同樣的效果。如:

SUBARCH=arm

ARCH = $(SUBARCH)

all:

        @echo $(ARCH)

輸出:

arm

ARCH = $(SUBARCH)

SUBARCH=arm

all:

        @echo $(ARCH)

也輸出:

arm

 

?=: 如果沒有初始化該變數,就給它賦上預設值。如

ARCH=arm

ARCH ?= i386

all:

        @echo $(ARCH)

輸出:

arm

ARCH ?= i386

all:

        @echo $(ARCH)

輸出:

i386

 

:= 直接賦值,不會遞迴展開,若引用的變數不存在,就展開為空串。如:

SUBARCH=arm

ARCH = $(SUBARCH)

all:

        @echo $(ARCH)

輸出:

arm

ARCH = $(SUBARCH)

SUBARCH=arm

all:

        @echo $(ARCH)

輸出:

(空串)

 

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述