make的自动变量和预定义变量
生活随笔
收集整理的這篇文章主要介紹了
make的自动变量和预定义变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?make的自動變量
?
$@ 規則目標的文件名.如果目標是檔案文件的一個成員,"$@"就是檔案文件的名稱
$< 第一個依賴文件的名稱
$? 以空格隔開的比目標新的所有依賴文件名.若依賴文件是檔案文件的成員,只使用成員的名稱
$^ 以空格隔開的所有依賴文件名.若依賴文件是檔案文件的成員,只使用成員名稱.無論一個依賴文件出現過多少次,"$^"值中只包含其名稱的一個拷貝
$+ 與"$^"相似,但多次列出的依賴文件按照它們在構造文件中出現的順序復制.這對于鏈接命令中以特定順序重復出現的庫文件名有作用
$* 隱含規則匹配的詞干.若目標為"dir/a.foo.b"且目標模式為"a.%.b",則詞干為"dir/foo".對靜態模式規則,詞干是文件名中與目標模式中"%"匹配的部分.應避免在隱含規則或靜態模式規則之外使用"$*"
$(@D) 刪除結尾斜杠的目標文件名的目錄部分.若"$@"的值為"dir/foo.o",則"$(@D)"為"dir".若"$@"不包含斜杠,則"$(@D)"為"."
$(@F) 目標文件名中目錄下的文件部分.如果"$@"的值為"dir/foo.o",那么"$(@F)"為"foo.o".它等同于"$(notdir $@)"
$(*D) 詞干中的目錄部分,例如上例中的"dir"
$(*F) 詞干中的目錄下文件部分,例如上例中的"foo"
$(%D) 目標檔案文件成員的目錄部分.僅對形為"archive(member)"的檔案文件成員目標有意義,且僅在member包含目錄名時有用
$(%F) 目標檔案文件成員中的目錄下文件部分
$(<D) 第一個依賴文件的目錄部分
$(<F) 第一個依賴文件的目錄下文件部分
$(^D) 所有依賴文件的目錄部分
$(^F) 所有依賴文件的目錄下文件部分
$(?D) 比目標新的所有依賴文件的目錄部分
$(?F) 比目標新的所有依賴文件的目錄部分
?
?
make的預定義變量
?
AR 歸檔維護程序的名稱,默認值為 ar。
ARFLAGS 歸檔維護程序的選項。
AS 匯編程序的名稱,默認值為 as。
ASFLAGS 匯編程序的選項。
CC C編譯器的名稱,默認值為 cc。
CCFLAGS C編譯器的選項。
CPP C預編譯器的名稱,默認值為 $(CC) -E。
CPPFLAGS C預編譯的選項。
CXX C++編譯器的名稱,默認值為 g++。
CXXFLAGS C++編譯器的選項。
FC FORTRAN編譯器的名稱,默認值為 f77。
FFLAGS FORTRAN編譯器的選項。
?
?
轉載于:https://www.cnblogs.com/cxz2009/archive/2010/11/04/1869033.html
總結
以上是生活随笔為你收集整理的make的自动变量和预定义变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET在IIS7中上下文中不可用
- 下一篇: (19) 转载: 寻找丑数