(1)makefile 中支援程式語言中變數的概念
(2)makefile 中的變數只代表文字資料(字串)
(3)makefile 中的命名規則
— 變數名可以包含字元 , 數字 , 下劃線
— 不能包含 ":" , "#" , "=" 或 " "
— 變數名大小寫敏感
#演示變數的使用23
cc := gcc
4target := hello.out
56 $(target) : main.o func.o
7 $(cc) -o $(target) main.o func.o
89 main.o : main.c
10 $(cc) -o main.o -c main.c
1112 func.o : func.c
13 $(cc) -o func.o -c func.c
1415 .phony :rebuild all clean
1617 rebuild :clean all
1819 all :$(target)
2021 clean :
22 rm *o $(target)
(1)簡單賦值(:=)
— 程式語言中的通用的賦值方式
— 只針對當前語句的變數有效
(2)遞迴賦值(=)
— 賦值操作可能影響多個其它變數
— 所有與目標變數相關的其它變數都將受到影響
— 指令碼語言也是順序一句一句執行的,遞迴賦值會改變與目標變數相關的其它變數
— 只會影響那些同樣是遞迴賦值的變數
(3)條件賦值(?=)
— 如果變數未定義,使用賦值符號中的只定義變數
— 如果變數已經定義,賦值無效
(4)追加賦值(+=)
— 原變數值之後加上乙個新值
— 原變數與新值之間由空格隔開
#演示4種變數的定義方式23
#ex14#
x := foo5#
y := $(x)b6#
x := new78
#ex29#
x = foo10#
y = $(x)b //這裡必須也是 = 不能是 := 否則不會影響11#
x = new
1213
#a = $(b)14#
b = $(c)15#
c = hello-makefile
1617
#ex318#
x := foo19#
y := $(x)b20#
x ?= new
2122
#ex423#
x := foo24#
y := $(x)b25#
x += new
2627 .phony :test
2829 test :
30 @echo "x => $(x)"
31 @echo "y => $(y)"
32 @echo "a => $(a)"
33 @echo "b => $(b)"
34 @echo "c => $(c)"
注:本文整理於《狄泰12月提公升計畫》課程內容狄泰qq群:199546072
第4課 變數和不同的賦值方式
1 makefile 中支援程式語言中變數的概念 2 makefile 中的變數只代表文字資料 字串 3 makefile 中的命名規則 變數名可以包含字元 數字 下劃線 不能包含 或 變數名大小寫敏感 演示變數的使用23 cc gcc 4target hello.out 56 target mai...
4 變數和不同的賦值方式
變數的定義和使用 變數定義 cc gcc target hello.out 變數使用 target func.o main.o cc o target func.o main.o makefile 中變數的賦值方式 x foo y x b x new phony test test echo x x...
10 變數的賦值方式
系統已經定義了一些系統變數,如 echo uid echo user echo pwd.想看到所有的環境變數,用 env 如果乙個專案需要拆分成許多小指令碼,可以在其中乙個指令碼中定義一些全域性性的變數,然後在別的指令碼中用點 或 source執行,執行後就可以引用。shell中,變數沒有型別,不需...