第4課 變數和不同的賦值方式

2021-09-26 14:56:38 字數 2079 閱讀 4984

(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中,變數沒有型別,不需...