[問題] make中的include指令

看板Linux作者 (nahgnimiast)時間15年前 (2011/03/02 01:56), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
我想請問兩個問題 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

03/02 02:58, , 1F
如果你原本的str2有值 =:會回傳原來的值而不做賦值
03/02 02:58, 1F

03/02 02:59, , 2F
上面打錯是 :=
03/02 02:59, 2F

03/02 03:01, , 3F
另外你 include 會出錯是不是 .phoney 沒設?
03/02 03:01, 3F

03/02 21:26, , 4F
你可以在 = 和 := 的右邊給它一個變數的值,這樣你就可
03/02 21:26, 4F

03/02 21:27, , 5F
以發現它們的差別
03/02 21:27, 5F

03/02 21:27, , 6F
我記得 = 會每次將變數值重新代換,但 := 不會
03/02 21:27, 6F

03/02 21:36, , 7F
原來的mk裡有設.PHONY
03/02 21:36, 7F
今天重試了一次,下面的可以成功執行。而且 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)
文章代碼(AID): #1DRJDH9c (Linux)