溫馨提示×

Makefile中的變量如何定義和使用

小樊
93
2024-09-03 11:49:09
欄目: 編程語言

在Makefile中,變量是一種存儲值的方式,可以在整個Makefile中重復(fù)使用

  1. 定義變量:

在Makefile中,使用等號(=)或者冒號等號(:=)來定義變量。等號表示懶惰求值(lazy evaluation),即只有在使用變量時才會計算其值;冒號等號表示立即求值(immediate evaluation),即在定義變量時就計算其值。

# 使用等號定義變量(懶惰求值)
variable1 = value1

# 使用冒號等號定義變量(立即求值)
variable2 := value2
  1. 使用變量:

要在Makefile中使用變量,只需在變量名前加上美元符號($)和括號(())。

# 使用變量
target:
    @echo $(variable1)
    @echo $(variable2)
  1. 修改變量值:

在Makefile中,可以使用等號(=)或者冒號等號(:=)來修改變量的值。注意,這里的行為與定義變量時略有不同。使用等號(=)時,如果變量已經(jīng)被定義過,那么新值將覆蓋舊值;使用冒號等號(:=)時,如果變量已經(jīng)被定義過,那么新值將被追加到舊值之后。

# 修改變量值
variable1 = new_value1
variable2 := new_value2
  1. 刪除變量:

要刪除變量,可以使用undefine指令。

# 刪除變量
undefine variable1
undefine variable2
  1. 條件語句中的變量:

在Makefile的條件語句(如ifeqifneq、ifdefifndef)中,可以使用變量來進行比較。

# 條件語句中的變量
ifeq ($(variable1), value1)
    # 當variable1等于value1時執(zhí)行的代碼
endif
  1. 函數(shù)和變量:

Makefile中的函數(shù)可以接受變量作為參數(shù),并返回一個新的值。

# 函數(shù)和變量
variable3 = $(subst old,new,$(variable1))

這里,$(subst old,new,$(variable1))函數(shù)將variable1的值中的所有"old"替換為"new",并將結(jié)果賦值給variable3。

0