Makefile中變數$var與$$var的區別詳談
阿新 • • 發佈:2019-01-28
很多人對$var與$$var東西不理解,總是區分不開Makefile中的變數與shell中的變數,我來解釋一下吧。希望對你有用。
首先make精神就是實現自動化編譯,是按照Makefile的規則來進行的,啥子規則呢,目標與依賴檔案的規則。
凡是目標後面有依賴,並根據依賴產生目標的才是乾貨,如果只有目標,而沒有依賴,那就是偽目標,把它當標籤看待就好了。
在Makefile中檔案中定義的變數就是Makefile變數,比如 var=3,那麼使用就是$var
那$$var代表啥呢,代表的是使用shell變數。這個需要進行一次擴充套件,在Makefile中目標依賴下面的命令中定義的變臉,就是shell變數,還有一種shell變數,就是外部傳遞的,export帶來的。首先展開shll變數 $var,比如var=4,那麼$$var=$4,現在就看$4有沒有值,如果沒有則為空。