Makefile——常用變數
make的隱含規則資料庫中用到了很多變數,有些變數沒有定義(例如CFLAGS),有些變數定義了預設值(例如CC)。 寫Makefile時可以重新定義這些變數的值,也可以在預設值的基礎上追加。 以下是一些常用的變數。
AR 靜態庫打包命令的名字,預設值是ar。
ARFLAGS 靜態庫打包命令的選項,預設值是rv。
AS 彙編器的名字,預設值是as。
ASFLAGS 彙編器的選項,沒有定義。
CC C編譯器的名字,預設值是cc。
CFLAGS C編譯器的選項,沒有定義。
CXX C++編譯器的名字,預設值是g++。
CXXFLAGS C++編譯器的選項,沒有定義。
CPP C前處理器的名字,預設值是$(CC) -E。
CPPFLAGS C前處理器的選項,沒有定義。
LD 連結器的名字,預設值是ld。
LDFLAGS 連結器的選項,沒有定義。
TARGET_ARCH 和目標平臺相關的命令列選項,沒有定義。
OUTPUT_OPTION 輸出的命令列選項,預設值是-o [email protected]。
LINK.o 把.o檔案連結在一起的命令列,預設值是$(CC) $(LDFLAGS) $(TARGET_ARCH)。
LINK.c 把.c檔案連結在一起的命令列,預設值是$(CC) $(CFLAGS) $(CPPFLAGS) $
LINK.cc 把.cc檔案(C++原始檔)連結在一起的命令列,預設值是$(CXX) $(CXXFLAGS)$(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)。
COMPILE.c 編譯.c檔案的命令列,預設值是$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c。
COMPILE.cc 編譯.cc檔案的命令列,預設值是$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c。
RM 刪除命令的名字,預設值是rm -f。