Makefile的补充学习
? ?通配符%和Makefile自動推導(規則)
(1)%是Makefile中的通配符,代表一個或幾個字母。也就是說%.o就代表所有以.o為結尾的文件。
(2)所謂自動推導其實就是Makefile的規則。當Makefile需要某一個目標時,他會把這個目標去套規則說明,一旦套上了某個規則說明,則Makefile會試圖尋找這個規則中的依賴,如果能找到則會執行這個規則用依賴生成目標。
?
Makfile中引用其他Makefile(include指令)
(1)有時候Makefile總體比較復雜,因此分成好幾個Makefile來寫。然后在主Makefile中引用其他的,用include指令來引用。引用的效果也是原地展開,和C語言中的頭文件包含非常相似。
?
命令前面的@用來靜默執行
(1)在makefile的命令行中前面的@表示靜默執行。
(2)Makefile中默認情況下在執行一行命令前會先把這行命令給打印出來,然后再執行這行命令。
(3)如果你不想看到命令本身,只想看到命令執行就靜默執行即可。
?
Makefile中幾種變量賦值運算符
(1)= 最簡單的賦值。但是用的時候非常注意,如果變量后面還有從新賦值,那么解析的時候是最后一次賦值為準。
(2):= 一般也是賦值
以上這兩個大部分情況下效果是一樣的,但是有時候不一樣。
用=賦值的變量,在被解析時他的值取決于最后一次賦值時的值,所以你看變量引用的值時不能只往前面看,還要往后面看。
用:=來賦值的,則是就地直接解析,只用往前看即可。
(3)?= 如果變量前面并沒有賦值過則執行這條賦值,如果前面已經賦值過了則本行被忽略。(實驗可以看出:所謂的沒有賦值過其實就是這個變量沒有被定義過,例 var=" ", var= ,都)
(4)+= 用來給一個已經賦值的變量接續賦值,意思就是把這次的值加到原來的值的后面,有點類似于strcat。(在shell makefile等文件中,可以認為所有變量都是字符串,+=就相當于給字符串stcat接續內容)(注意一個細節,+=續接的內容和原來的內容之間會自動加一個空格隔開)
轉載于:https://www.cnblogs.com/yygsj/p/5204368.html
總結
以上是生活随笔為你收集整理的Makefile的补充学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASM:《X86汇编语言-从实模式到保护
- 下一篇: css样式重置,不建议用通配符