看板 Linux 關於我們 聯絡資訊
我想請問兩個問題 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)