makefile使用方法

2021-08-18 12:22:57 字數 1926 閱讀 7112

1. makefile格式

target:dependency_files         

command   //即make需要執行的命令

vi乙個makefile檔案,用make執行,make預設執行第乙個檔案,也可以make f1.c其中乙個c檔案。就是將.c檔案生成.o目標 檔案,上面一句是說明目標檔案的依賴,下面是執行語句,最終make執行命令。    

2.makefile一些理論知識

把原始碼生成

.o檔案叫編譯

把大量的

.o檔案生成可執行檔案叫鏈結。鏈結時主要鏈結的是函式和全域性變數。

總結一下,原始檔首先會生成中間目標檔案,再由中間目標檔案生成執行檔案。在編譯時,編譯器只檢測程式語法,和函式、變數是否被宣告。如果函式未被宣告,編譯器會給出乙個警告,但可以生成

object file

。而在鏈結程式時,鏈結器會在所有的

object file

中找尋函式的實現,如果找不到,那到就會報鏈結錯誤碼(

linker error

),在vc

下,這種錯誤一般是:

link 2001

錯誤,意思說是說,鏈結器未能找到函式的實現。你需要指定函式的

object file.

在這個makefile

中,目標檔案(

target

)包含:執行檔案

edit

和中間目標檔案(

*.o),依賴檔案(

prerequisites

)就是冒號後面的那些

.c 檔案和

.h檔案。每乙個

.o 檔案都有一組依賴檔案,而這些

.o 檔案又是執行檔案

edit

的依賴檔案。依賴關係的實質上就是說明了目標檔案是由哪些檔案生成的,換言之,目標檔案是哪些檔案更新的。在定義好依賴關係後,後續的那一行定義了如何生成目標檔案的作業系統命令,一定要以乙個tab鍵作為開頭。記住,make並不管命令是怎麼工作的,他只管執行所定義的命令。

3.makefile常用的一些引數

make –f  makefile.debug//-f是將後面的檔案當作makefile來執行

make –i

忽略所有錯誤命令繼續執行完,很重要

例子:hello.o :hello.c hello.h

gcc –chello.c –o hello.o

gcc -wall:warning顯示出來

-o file:表示把檔案輸出到file裡

-n :只列印要執行的命令,但不執行這些命令

-s:在執行命令時不顯示命令

-i include在資料夾中搜尋

-c $@  :進入所有的子目錄中

make

的隱含規則,當執行檔案存在時,file.o

的目標的依賴會自動推導為file.c,並生成執行命令,可以大大簡化make的編寫。

vpath

:虛路徑,在當前目錄找不到原始檔時,就會去其他目錄尋找,如:vpath = src1 src2 main

find ./-name 「*.o」//

找到當前目錄下所有.o的檔案

find ./-name 「*.o」exec rm {} \  //把找到的檔案刪除

$^:獲取所有依賴檔案

$@:獲取所有目標檔案

$<:獲取第乙個依賴檔案

$?:表示比目標還要新的依賴檔案列表

makefile的巢狀使用(常用)

@echo$():輸出,且不顯示輸出命令

exportcc objs  //讓子makefile可以使用定義的自變數

用到自己的標頭檔案時用「」而不是

clean的用法:

.phony:clean    //防止某個檔案和clean重名

clean:*.o test   //刪除所有的中間檔案和執行檔案

makefile簡明使用方法

命令前面加乙個減號的意思是,該命令如果出錯也不停止 命令前面加 的意思是,這個命令將不顯示出來 makefile中的變數其實就是c語言中的巨集 定義的變數不能使用後面定義的變數 定義的變數可以使用後面的變數 是追加 例如,a 5 b c 5 b b mb是5m,c是5 vpath變數 make會在當...

makefile的基本使用方法

makefile的基本使用方法 有三個檔案,file1.c file2.c file3.h,第乙個檔案呼叫第二個檔案的函式,第三個檔案為標頭檔案,其makefile為 gobbin file1.o file2.o gobbin為程式名稱,依賴於file1.o file2.o兩個目標檔案 gcc fi...

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...