1. 程式人生 > >make 學習筆記二

make 學習筆記二

1.關於偽目標,具體定義為:偽目標不是真正的目標檔案,所以通過偽目標可以讓Make 工程管理器只執行規則命令,而不用建立實際的目標檔案。偽目標的使用方式為:

make 偽目標名

由於偽目標不是真正的目標檔案,只是一個符號。為了不和真實的目標檔案混淆,最好使用“.PHONY”對偽目標進行標識。

2.make –f 的使用,該命令是用來配置Makefile的,具體實現為:

make –f Makefile1

3.學會了標準工程目錄的構成與Makefile 的編寫;一個標準目錄的構成是由src,include,scripts,bin,doc,Makefile構成的(其中bin中存放的是最終生成的可執行檔案),建立一個路徑目錄,可以使用以下該種命令:

mkdir –p sub/src sub/pngsub/lib sub/doc

4.命令tree:樹狀顯示目錄結構;

5.Makefile可出現在以下幾個目錄下:功能目錄,指令碼目錄,源目錄

其中,最頂層的Makefile為總控Makefile;其作用為:進入各個功能子目錄裡執行make命令,將所有的.o檔案連結生成最終可執行檔案。

功能子目錄Makefile:其作用為將src 目錄下的.c檔案編譯成.o 檔案

指令碼目錄下的Makefile:其作用為定義許多變數,相當於c語言的標頭檔案。

由它們的作用可知,我們要想理清一個linux下的make的功能,瀏覽各Makefile的順序為:先看scripts下的Makefile,再看總控Makefile ,最後檢視各個功能Makefile.

6.Makefile中的註釋為#號。

7.Make的特性

(1)   巢狀執行

為避免將所有的原始檔的編譯規則命令都寫在一個makefile中,可以把Makefile分解成多個子程式並放到程式的子目錄裡,而Make 工程管理器會首先讀取程式根目錄下的Makefile檔案即總控Makefile,然後再讀各個子模組下的Makefile,,該過程為巢狀執行。執行方法為:

$(MAKE) –c 子目錄

(2)函式

**下面結合具體的例項來解釋函式的用法,並嘗試著用編譯命令加以代替。

首先,建立test1目錄,為了進行巢狀執行,分解為多個子程式如下: