Makefile筆記之一 ------ 變量的引用及賦值


1.變量的引用方式:

  ”$(變量名)“或者”¥{變量名}“

  例如:

  ${Objs}就是取變量Objs的值

  注意:

  當變量名為單字符是可以采用:“$a”的方式引用,多字符則不行

2.變量定義的兩種方法,即對變量進行賦值:

  (1)使用遞歸展開式變量“=”  左側為變量名,右側是變量的值,該方法的優點是右側變量的值可以定義在文件的任何一處,也就是說,右側中的變量不一定非要是已定義好的值,其也可以使用后        面定義的值。

  (2)使用直接展開式變量“:=”  使用“:=”定義變量時,變量值中對其他量或者函數的引用在定義變量時被展開(對變量進行替換)。所以變量被定義后就是一個實際需要的文本串,其中不再包含任何變量的引用。這種方法,前面的變量不能使用后面的變量,只能使用前面已定義好了的變量

3.“?=”操作符

  “?=”被稱為條件賦值的賦值操作符:只有此變量在之前沒有賦值的情況下才會對這個變量進行賦值

 

4.環境變量

  (1)系統環境變量可帶入到執行make的Makefile文件中,但是如果make命令行加入變量或者是該變量已經在Makefile文件中定義,則系統環境變量將會被覆蓋,如果make指定了“-e”參數,那么,系統環境變量將覆蓋Makefile中定義的變量

  (2)如果我們在環境變量中設置了“CFLAGS”環境變量,那么我們就可以在所有的Makefile中使用這個變量了。這對於我們使用統一的編譯參數有比較大的好處。如果Makefile中定義了CFLAGS,那么則會使用Makefile中的這個變量,如果沒有定義則使用系統環境變量的值

  (3)環境變量的傳遞使用,當make遞歸調用時,上層Makefile中定義的變量會以系統環境變量的方式傳遞到下層的Makefile中。當然,默認情況下,只有通過命令行設置的變量會被傳遞。而定義在文件中的變量,如果要向下層 Makefile傳遞,則需要使用exprot關鍵字來聲明。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM