make中的include指令 - Linux

Table of Contents

我想請問兩個問題

1.
str1 = 1
str2 := a
str1 += 2
str1 += 3
str2 += b
str2 += c
#測試結果 str1 = 1 2 3 str2 = a b c
上面=和:=有什麼差別?網路寫的資料說和+=時會有差
但是我自己試的時候,結果一樣。請問這兩者有什麼差別。


2.如果有兩個mk檔,長得類似下面
=======a.mk========
droid :
include b.mk
...
...
=======b.mk========
...
...
clean :
@rm -rf *.o
===================
大約類似上面的寫法,就是某個mk檔,在區塊內(就是像上面

寫在droid的下面)include其他mk,但是其他的mk也有做使事

情。這種寫法clean:的內容會做還是不會做?

我最近在看android的main.mk檔,看到它的droid:裡include

了許多mk,而且其他的mk也有自己要做的事,而不是單只是

宣告變數或是定義函式。

自己照寫個簡單的mk,晊是會在include b.mk欲樣錯誤

所以搞不懂這種用法。

--

All Comments

Robert avatarRobert2011-03-04
如果你原本的str2有值 =:會回傳原來的值而不做賦值
Lauren avatarLauren2011-03-08
上面打錯是 :=
Frederic avatarFrederic2011-03-12
另外你 include 會出錯是不是 .phoney 沒設?
Jacob avatarJacob2011-03-15
你可以在 = 和 := 的右邊給它一個變數的值,這樣你就可
Jacob avatarJacob2011-03-17
以發現它們的差別
我記得 = 會每次將變數值重新代換,但 := 不會
Yedda avatarYedda2011-03-21
原來的mk裡有設.PHONY