1. 程式人生 > >Makefile中變數$var與$$var的區別詳談

Makefile中變數$var與$$var的區別詳談

很多人對$var與$$var東西不理解,總是區分不開Makefile中的變數與shell中的變數,我來解釋一下吧。希望對你有用。

首先make精神就是實現自動化編譯,是按照Makefile的規則來進行的,啥子規則呢,目標與依賴檔案的規則。

凡是目標後面有依賴,並根據依賴產生目標的才是乾貨,如果只有目標,而沒有依賴,那就是偽目標,把它當標籤看待就好了。

在Makefile中檔案中定義的變數就是Makefile變數,比如 var=3,那麼使用就是$var

那$$var代表啥呢,代表的是使用shell變數。這個需要進行一次擴充套件,在Makefile中目標依賴下面的命令中定義的變臉,就是shell變數,還有一種shell變數,就是外部傳遞的,export帶來的。首先展開shll變數 $var,比如var=4,那麼$$var=$4,現在就看$4有沒有值,如果沒有則為空。