作者tsaiminghan (nahgnimiast)
看板Linux
標題[問題] make中的include指令
時間Wed Mar 2 01:56:30 2011
我想請問兩個問題
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欲樣錯誤
所以搞不懂這種用法。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.128.155
推 iman00b:如果你原本的str2有值 =:會回傳原來的值而不做賦值 03/02 02:58
→ iman00b:上面打錯是 := 03/02 02:59
→ iman00b:另外你 include 會出錯是不是 .phoney 沒設? 03/02 03:01
推 imprazaguy:你可以在 = 和 := 的右邊給它一個變數的值,這樣你就可 03/02 21:26
→ imprazaguy:以發現它們的差別 03/02 21:27
→ imprazaguy:我記得 = 會每次將變數值重新代換,但 := 不會 03/02 21:27
→ tsaiminghan:原來的mk裡有設.PHONY 03/02 21:36
今天重試了一次,下面的可以成功執行。而且
aaaaaa和bbbbbb兩個都會印出來。這關係有人可以說清楚嗎?
====a.mk======
.PHONY
a :
@echo aaaaaa
====b.mk======
.PHONY
b :
# include a.mk #加在這邊會出錯
@echo bbbbbbb
include a.mk
==============
※ 編輯: tsaiminghan 來自: 59.121.234.71 (03/02 21:42)