不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

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

linux的make命令

時(shí)間: 佳洲1085 分享

linux的make命令

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

  linux的make命令詳解

  1.功能說明

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

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

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

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

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

  2.makefile文件

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

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

  (1) 宏定義

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

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

  3.make命令

  make命令的一般格式:

  make【選項(xiàng)】【make描述文件】【宏定義】【目的文件】

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

  unix下常用的選項(xiàng)如下:

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

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

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

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

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

  -t   更新目標(biāo)文件。

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

  -p   輸出所有宏定義和目標(biāo)文件描述。

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

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

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

  -I dir   當(dāng)包含其他 makefile文件時(shí),利用該選項(xiàng)指定搜索目錄。

  -h   help文擋,顯示所有的make選項(xiàng)。

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

  linux的make命令實(shí)例解析

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

3622689