Makefile 常用變數

2021-08-27 23:57:43 字數 1125 閱讀 1423

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 $@。

link.o

把.o檔案鏈結在一起的命令列,預設值是$(cc) $(ldflags) $(target_arch)。

link.c

把.c檔案鏈結在一起的命令列,預設值是$(cc) $(cflags) $(cppflags) $(ldflags)$(target_arch)。

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。

Make選項及makefile常用變數

make命令可以帶幾種引數 標誌,巨集定義,描述檔名和目標檔名,標準形式為 make flags macro definitions targets 在unix下,flags包含 f file 指定file檔案為描述檔案.如果file引數為 描述檔案指向標準輸入,如果沒有 f 則系統預設當前目錄下m...

makefile編譯選項與常用變數

d 條件選擇編譯 i 標頭檔案搜尋路徑 l 連線靜態庫 l 連線庫的路徑 wall 開啟警告開關 ar 靜態庫打包命令的名字,預設值是ar。arflags 靜態庫打包的選項,預設值rv as 彙編器的名字,預設值是as。asflags 彙編器的選項,沒有定義。cc c編譯器的名字,預設值是cc。cf...

Makefile基礎 變數

這一節我們詳細看看makefile中關於變數的語法規則。先看乙個簡單的例子 foo bar bar huh?all echo foo 我們執行make將會打出huh?當make讀到foo bar 時,確定foo的值是 bar 但並不立即展開 bar 然後讀到bar huh?確定bar的值是huh?然...