標籤:
一、makefile介紹:
一個工程中的源檔案不計其數,其按類型、功能、模組分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更複雜的功能操作,因為 makefile就像一個Shell指令碼一樣,其中也可以執行作業系統的命令。
Linux 環境下的程式員如果不會使用GNU make來構建和管理自己的工程,應該不能算是一個合格的專業程式員。在 Linux(unix )環境下使用GNU 的make工具能夠比較
容易的構建一個屬於你自己的工程,整個工程的編譯只需要一個命令就可以完成編譯、串連以至於最後的執行。不過這需要我們投入一些時間去完成一個或者多個稱之為
Makefile 檔案的編寫。
所要完成的Makefile 檔案描述了整個工程的編譯、串連等規則。其中包括:工程中的哪些源檔案需要編譯以及如何編譯、需要建立那些庫檔案以及如何建立這些庫檔案、如何最後產生我們想要的可執行檔。儘管看起
來可能是很複雜的事情,但是為工程編寫Makefile 的好處是能夠使用一行命令來完成“自動化編譯”,一旦提供一個正確的Makefile。編譯整個工程你所要做的唯一的一件事就是在shell 提示符下輸入make命令。
整個工程完全自動編譯,極大提高了效率。
二、makefile使用
因為剛剛瞭解makefile,就簡單的實現一個建立動態函數庫和靜態函數庫的功能
三、makefile規則
#第一條目標為總的目標,
#依賴可以是檔案(目錄)或為其他目標
#動作可以是Linux命令,動作的那一行第一個字元必須是以TAB鍵
target: depend1 depend2 depend3 ...
[TAB] action1
[TAB ] action2
target1:
[TAB] action1
[TAB] action2
四、make的使用
make 找makefile或Makefile檔案執行總的目標
make clean 執行makefile檔案中的clean目標
make -C directory 進入到directory檔案夾中去執行總的目標
make clean -c direcotry 進入到directory檔案夾中去執行clean目標
make -f comm_makefile 通過-f選項指定一個makefile檔案
make VAR=value 給Makefile傳一個參數VAR,其值為value
makefile命令基本運用(一)