一.備忘
1.clean :
-rm edit $(objects)
而在rm命令前面加了乙個小減號的意思就是,也許某些檔案出現問題,但不要管,繼續做後面的事。
2.萬用字元匹配只能在規則裡面或者命令裡面,變數裡面不能直接使用萬用字元,只能夠使用函式來做這些事情比如wildcard。
3.vpath
4. .c.o
注意其中的 .c.o ,其實是 和 %o:%c 等價。是乙個舊格式
5.$(var:=)
此格式的變數,將本來變數$var裡面的pattern替換成replacement
相當於「$(patsubst %,%,$(var))」這個函式。
比如$var=foo.c abc.c
obj = $(var:.c=.o) 會將obj的值變為
obj = foo.o abc.o
6.偽目標
特殊的指明這是乙個標籤不是乙個目標檔案。因為可能出現我編譯的目標裡面有乙個目標檔案名字確實就是clean。
所以加上phony說明我下面定義的這個是乙個偽目標只是乙個標籤,不需要生成,只需要執行命令
.phony : clean
clean :
-rm edit $(objects)
二.函式
2.1 跟字串有關係的函式
subst patsubst strip findstring filter filter-out sort word wordlist words firstword
2.2 檔案有關係的函式
1.dir notdir suffix basename addsuffix addprefix join
makefile編譯問題
porting http 時遇到 makefile因為編譯時編碼的問題,導致無法編譯的問題。開始報錯是提示,api的倚賴項上,缺少分割符號,仔細檢查了下 和 都寫的很規矩啊。檢視另乙個可以編譯的資料夾的makefile,發現寫法完全相同,只是他對的很齊,心想難道這裡還有這種原因,抱著除錯時期懷疑一切...
plsql問題備忘
1 plsql動態表不可執行,本次會話的自動統計被禁止。當建立使用者時,沒有給予某四個物件許可權,會導致這個問題。方法 以管理員身份登入並用一下sql語句賦予管理員使用者的表 v session,v sesstat,v statname的select許可權 grant select on v sta...
Makefile編譯問題彙總
最近使用makefile編譯遇到了些問題,反覆地排查了4天多,才解決,要處理的問題很簡單,就是把一堆.c檔案編譯打包成.so,然後再把.so和demo.o打包成可執行檔案,遇到了下面 三個問題,總結一下 1 問題描述在這裡 原因 在生成可執行檔案的時候,加入了 shared引數,這時生成的並不是可執...