學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux的make命令

linux的make命令

時間: 佳洲1085 分享

linux的make命令

  Linux系統(tǒng)下編譯時利用make命令可以很好地減少不必要的編譯工作,提高效率,下面由學(xué)習(xí)啦小編為大家整理了linux的make命令的相關(guān)知識,希望大家喜歡!

  linux的make命令詳解

  1.功能說明

  make命令的關(guān)鍵是找出上一次各個文件的修改時間,利用此修改時間來比較相依 賴文件最后一次修改的時間。若目標文件的修改時間早于其相依文件的修 改時間,則必須先對相依文件進行處理(編譯),進而來更新目標文件,若目標文件的修改時間遲于其相依文件的修改時間,則不對該相依文件進行處理(編譯)。 利用它可以每次只編譯自上次編譯后發(fā)生變化的文件,從而可以減少一些不必要的編譯工作,提高效率。

  執(zhí)行make命令所需要的信息:

  (1)用戶定義的描述文件,一般為makefile

  (2)文件系統(tǒng)有關(guān)的數(shù)據(jù)和與時間有關(guān)的信息

  (3)一組后綴規(guī)則

  2.makefile文件

  Make工具最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關(guān)系并自動維護編譯工作。而makefile 文件需要按照某種語法進行編寫,文件中需要說明如何編譯各個源文件并連接生成可執(zhí)行文件,并要求定義源文件之間的依賴關(guān)系。

  Makefile文件作為一種描述文檔一般需要包含以下內(nèi)容:

  (1) 宏定義

  (2) 源文件之間的相互依賴關(guān)系

  (3) 在依賴關(guān)系基礎(chǔ)上的可執(zhí)行的命令序列

  3.make命令

  make命令的一般格式:

  make【選項】【make描述文件】【宏定義】【目的文件】

  make首先分析所有的宏定義參數(shù)(帶嵌入等號的參數(shù))并進行賦值,宏命令行覆蓋在makefile中進行的定義,然后檢驗選項標志,最后遞歸的對每一個目的依賴文件進行檢查。

  unix下常用的選項如下:

  f file  指定file文件為描述文件,如果file參數(shù)為"-"符,那么描述文件指向標準輸入。如果沒有"-f"參數(shù),則系統(tǒng)將默認當前目錄下名為makefile或者名為Makefile的文件為描述文件。在Linux中, GNU make工具在當前工作目錄中按照GNUmakefile、makefile、Makefile的順序搜索 makefile文件。

  -i   忽略命令執(zhí)行返回的出錯信息。

  -s   沉默模式,在執(zhí)行之前不輸出相應(yīng)的命令行信息。

  -r   禁止使用build-in規(guī)則。

  -n   非執(zhí)行模式,輸出所有執(zhí)行命令,但并不執(zhí)行。

  -t   更新目標文件。

  -q   make操作將根據(jù)目標文件是否已經(jīng)更新返回"0"或非"0"的狀態(tài)信息。

  -p   輸出所有宏定義和目標文件描述。

  -d   Debug模式,輸出有關(guān)文件和檢測時間的詳細信息。

  Linux下常用選項與Unix系統(tǒng)中稍有不同,下面是不同的部分:

  -c dir   在讀取 makefile 之前改變到指定的目錄dir。

  -I dir   當包含其他 makefile文件時,利用該選項指定搜索目錄。

  -h   help文擋,顯示所有的make選項。

  -w   在處理 makefile 之前和之后,都顯示工作目錄。

  linux的make命令實例解析

  1.make -j 18 :表示同時使用18個線程進行編譯。該數(shù)字建議小于或者等于CPU的個數(shù)。

3622689