過濾函式
$(filter ,
)
filter 函式表示以 pattern 模式過濾 text 字串中的單詞,僅保留符合模式 pattern 的單詞,
可以有多個模式。函式返回值就是符合 pattern 的字串。
例:
$(filter %.o,$(files)
)
sources := foo.c bar.c baz.s ugh.h
$(filter %.c %.s,$(sources)
) 返回的值是 foo.c bar.c baz.s
反過濾函式
$(filter-out ,
)
模式過濾
字串中的單詞,去除符合模式的單詞。可以有多個模式。返回不符合模式的字串。
例:
objects = main1.o foo.o main2.o bar.o
mains = main1.o main2.o
$(filter-out $(mains)
,$(objects)
) 返回值是「foo.o bar.o」
$(firstword
)
返回字串
的第乙個單詞
$(firstword foo bar)
返回值是「foo」
利用 word 函式實現同樣效果,如下:
$(word 1,
)
$(shell shell指令)
引數應該就是作業系統 shell 的命令。
它和反引號「`」是相同的功能。
把執行作業系統命令後的輸出作為函式返回。
注意,這個函式會新生成乙個 shell 程式來執行命令,所以你要注意其執行效能,如果你的
makefile 中有一些比較複雜的規則,並大量使用了這個函式,那麼對於你的系統效能是有
害的。
$(words
)
返回 < text > 中的單詞數
例:
$(words, foo bar baz)
返回值是 3 。
$(patsubst ,,
)
查詢
中的單詞(單詞以「空格」、「tab」或「回車」「換行」分隔)是否符
合模式,如果匹配的話,則以替換。函式返回被替換過後的字串。
例:
$(patsubst %.c,%.o,x.c.c bar.c)
把字串「x.c.c bar.c」符合模式[%.c]的單詞替換成[%.o],返回結果是「x.c.o bar.o」
$(origin
)
是變數的名字,不應該是引用,不要加 「 $ 」。origin 函式以其返回值來說明這個變數的 「 出生情況 」。
函式的返回值 :
「undefined」 從來沒有定義過。
「default」 是乙個預設的定義,比如「cc」這個變數。
「environment」 是乙個環境變數, 並且當 makefile 被執行時, 「-e」
引數沒有被開啟。(如果 make 指定了「-e」引數,那麼,系統環境變
量將覆蓋 makefile 中定義的變數)
「file」 這個變數被定義在 makefile 中。
「command line」 這個變數是被命令列定義的。
「override」 是被 override 指示符重新定義的。
「automatic」 是乙個命令執行中的自動化變數。
export varible,... 匯出變數到子 makefile
unexport varible, ... 不匯出變數
有連個特殊的變數,shell 和 makeflags,這兩個變數除非使用 unexport 宣告,預設是會像下一級 makefile 傳遞的。 Makefile中常用的一些符號
1 環境變數 1.1 編譯器 cc c語言編譯器,預設值為gcc cxx c 語言編譯器,預設值為g 說明 這是預設的變數,無需使用者自定義 但是使用者可以修改其值,例如cc arm linux gcc,用於交叉編譯 1.2 編譯器引數 cflags c語言編譯器的編譯選項 ldflags c語言編...
一些常用的函式
設定文字 test.getdlgitem text的id setwindowtext 顯示文字1 獲得當前目錄 getcurrentdirectory max path,buf 獲得當前程式檔名等 getmodulefilename getsystemdirectory getwindowsdire...
一些常用的函式
這是一些使用頻率比較高的函式,有的來自別人的程式.1.產生隨機字串函式 function random length return hash 2.擷取一定長度的字串 注 該函式對gb2312使用有效 function wordscut string,length sss 0 for i 0 i le...