Makefile中的引數

2021-08-21 21:27:01 字數 581 閱讀 4477

-g 編譯器編譯時加入debug資訊

-wall 就是開啟所有的警告

-wall 這個的意思是wring all 意思在編譯和鏈結過程中顯示所有警告資訊

例:

gcc -o hello hello.c   -i/home/hello/include   -l/home/hello/lib    -lworld
上面這句表示在編譯hello.c時:

-l /home/hello/lib,表示將/home/hello/lib目錄作為第乙個尋找庫檔案的目錄, 尋找的順序是:/home/hello/lib–>/lib–>/usr/lib–>/usr/local/lib

-l word , 表示**尋找動態鏈結庫檔案**libword.so(也就是檔名去掉字首和字尾所代表的庫檔案)

一般我們可以使用「$(wildcard *.c)」來獲取工作目錄下的所有的.c檔案列表

$(patsubst %.c,%.o, a.c b.c)

把字串「a.c b.c」符合模式[%.c]的單詞替換成[%.o],返回結果是「a.o b.o」

Makefile常用引數

一 make編譯過程 預處理,開頭的 全被解決掉 預編譯,包含庫,巨集定義等等 hello.i上千行.gcc e hello.c hello.i 編譯,檢查語法錯誤,生成.s檔案,彙編 大概26行.gcc s hello.i 彙編。產生字尾.o的object目標檔案,二進位制,不可以執行,缺少庫資訊...

makefile 引數說明

k引數 如果某個目標出錯,依賴這個目標的規則都不執行,其它規則執行。例 還是這個makefile檔案 r1 r2 r3 echo 1 r2 r21 echo 2 cat ew ew檔案不存在,故意讓這條指定出錯 r21 echo 21 r3 r31 echo 3 r31 echo 31 執行命令ma...

Makefile 中 的區別

在makefile中我們經常看到 這幾個賦值運算子,那麼他們有什麼區別呢?我們來做個簡單的實驗 新建乙個makefile,內容為 ifdef define vre vre hello world else endif ifeq opt define vre hello world first end...