導航:首頁 > 程序命令 > makefile命令

makefile命令

發布時間:2022-07-20 02:38:00

㈠ 如何調試makefile

調試makefile的步驟如下,
一、make的退出碼
make命令執行後有三個退出碼:
0 —— 表示成功執行。

1 —— 如果make運行時出現任何錯誤,其返回1。

2 —— 如果你使用了make的「-q」選項,並且make使得一些目標不需要更新,那麼返回2。
Make的相關參數我們會在後續章節中講述。
二、指定Makefile

前面我們說過,GNU make找尋默認的Makefile的規則是在當前目錄下依次找三個文件——「GNUmakefile」、「makefile」和「Makefile」。其按順序找這三個文件,一旦找到,就開始讀取這個文件並執行。

當前,我們也可以給make命令指定一個特殊名字的Makefile。要達到這個功能,我們要使用make的「-f」或是「--file」參數(「--makefile」參數也行)。例如,我們有個makefile的名字是「hchen.mk」,那麼,我們可以這樣來讓make來執行這個文件:

make –f hchen.mk
如果在make的命令行是,你不只一次地使用了「-f」參數,那麼,所有指定的makefile將會被連在一起傳遞給make執行。

三、指定目標

一般來說,make的最終目標是makefile中的第一個目標,而其它目標一般是由這個目標連帶出來的。這是make的默認行為。當然,一般來說,你的makefile中的第一個目標是由許多個目標組成,你可以指示make,讓其完成你所指定的目標。要達到這一目的很簡單,需在make命令後直接跟目標的名字就可以完成(如前面提到的「make clean」形式)

任何在makefile中的目標都可以被指定成終極目標,但是除了以「-」打頭,或是包含了「=」的目標,因為有這些字元的目標,會被解析成命令行參數或是變數。甚至沒有被我們明確寫出來的目標也可以成為make的終極目標,也就是說,只要make可以找到其隱含規則推導規則,那麼這個隱含目標同樣可以被指定成終極目標。

四、檢查規則

讓的makefile中的規則執行起來,檢查一下我們的命令,或是執行的序列。於是可以使用make命令的下述參數:
「-n」

「--just-print」

「--dry-run」
「--recon」
不執行參數,這些參數只是列印命令,不管目標是否更新,把規則和連帶規則下的命令列印出來,但不執行,這些參數對於我們調試makefile很有用處。
「-t」
「--touch」

這個參數的意思就是把目標文件的時間更新,但不更改目標文件。也就是說,make假裝編譯目標,但不是真正的編譯目標,只是把目標變成已編譯過的狀態。
五、make的參數
下面列舉了所有GNU make 3.80版的參數定義。其它版本和產商的make大同小異,不過其它產商的make的具體參數還是請參考各自的產品文檔。
「-b」

「-m」

這兩個參數的作用是忽略和其它版本make的兼容性。
「-B」
「--always-make」

認為所有的目標都需要更新(重編譯)。

㈡ makefile到底是干什麼用的

一個工程(project)中的源文件不計其數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些文件需要先編譯,哪些文件需要後編譯,哪些文件需要重新編譯,甚至於進行更復雜的功能操作,因為 makefile就像一個Shell腳本一樣,其中也可以執行操作系統的命令。

Makefile 文件描述了整個工程的編譯、連接等規則。其中包括:工程中的哪些源文件需要編譯以及如何編譯、需要創建那些庫文件以及如何創建這些庫文件、如何最後產生我們想要的可執行文件。盡管看起來可能是很復雜的事情,但是為工程編寫Makefile 的好處是能夠使用一行命令來完成「自動化編譯」,一旦提供一個(通常對於一個工程來說會是多個)正確的
Makefile。編譯整個工程你所要做的唯一的一件事就是在shell 提示符下輸入make命令。整個工程完全自動編譯,極大提高了效率。

如果你使用的是帶有圖形用戶界面的集成化開發環境如VisualStudio,一般用不著手動編寫makefile文件,當你需要時,VS可以為你自動生成。

㈢ 在linux系統應用make命令時,makefile 與makefile有何區別

分析linux
make命令與Makefile的區別:
1、make命令有一些內置的默認功能,但是光有這個還是不知道怎麼build程序。必須提供一個文件告訴make應用程序的構造,這個文件就是makefile。
2、Make和makefile提供了強大的功能來管理項目的編譯以及發布install到指定文件夾
3、make的原理是執行一個叫Makefile文件里的指令,make的基本用處是自動根據makefile里的指令來編譯源文件。還可以用來做比如安裝軟體,卸載軟體等事情,但前提是在makefile里寫了。
4、比如makefile里有這么些內容:
install
:
<
commands
>
然後用make
install的話,make程序就會按照上面install:後面的指令<
commands
>執行安裝,uninstall也是一樣的道理,大部分的作者會寫有卸載的部分,這時只要簡單地執行make
unistall就可以,如果作者懶沒有寫,那就只有根據make
install中的步驟,把什麼文件拷到哪去了,然後分別手動刪除。還有關鍵的一點是,編譯安裝完成後,不要刪除源代碼,不然就算作者寫了unnistall目標,也沒有makefile可以執行了。

㈣ linux 命令行怎麼寫make makefile命令

無論是在Linux還是在Unix環境中,make都是一個非常重要的編譯命令。不管是自己進行項目開發還是安裝應用軟體,我們都經常要用到make或make
install。利用make工具,我們可以將大型的開發項目分解成為多個更易於管理的模塊,對於一個包括幾百個源文件的應用程序,使用make和
makefile工具就可以簡潔明快地理順各個源文件之間紛繁復雜的相互關系。而且如此多的源文件,如果每次都要鍵入gcc命令進行編譯的話,那對程序員
來說簡直就是一場災難。而make工具則可自動完成編譯工作,並且可以只對程序員在上次編譯後修改過的部分進行編譯。因此,有效的利用make和
makefile工具可以大大提高項目開發的效率。同時掌握make和makefile之後,您也不會再面對著Linux下的應用軟體手足無措了。
但令人遺憾的是,在許多講述Linux應用的書籍上都沒有詳細介紹這個功能強大但又非常復雜的編譯工具。在這里我就向大家詳細介紹一下make及其描述文件
makefile。
Makefile文件
Make工具最主要也是最基本的功能就是通過makefile文件來描述源程序之間的相互關系並自動維護編譯工作。而makefile 文件需要按照某種語法進行編寫,文件

需要說明如何編譯各個源文件並連接生成可執行文件,並要求定義源文件之間的依賴關系。makefile 文件是許多編譯器--包括 Windows NT
下的編譯器--維護編譯信息的常用方法,只是在集成開發環境中,用戶通過友好的界面修改 makefile 文件而已。

㈤ linux 下的makefile 中的命令

Linux echo命令不能顯示文件中的內容。
功能說明:顯示文字。
語 法:echo [-ne][字元串]或 echo [--help][--version]
補充說明:echo會將輸入的字元串送往標准輸出。輸出的字元串間以空白字元隔開, 並在最後加上換行號。
參 數:-n 不要在最後自動換行
-e 若字元串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出:
\a 發出警告聲;
\b 刪除前一個字元;
\c 最後不加上換行符號;
\f 換行但游標仍舊停留在原來的位置;
\n 換行且游標移至行首;
\r 游標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字元;
\nnn 插入nnn(八進制)所代表的ASCII字元;
--help 顯示幫助
--version 顯示版本信息

㈥ 上一次輸入的命令,還有makefile怎麼用

makefile 文件是一個命令的集合,指導shell生成需要的目標文件。生成的目標文件一般在當前目錄下。你可以在shell下使用 ./@@@ 來執行生成的目標文件。@@@ 是生成的目標文件的文件名。我看你的問題,估計makefile 不是你寫的,應該是在安裝別人的軟體。這種情況makefile 里一般有個install 目標,,你在make後直接在shell中輸入make install 就OK了。
你要是還有什麼問題可以把makefile文件發給我,我給你看看。

㈦ 如何使用makefile

以hello_test.c文件為例
1.創建程序
在linux控制台界面下
,輸入vi
hello_test.c,輸入i進入編輯插入模式,輸入代碼如下:
#include
<stdio.h>
int
main(void)
{
printf("Hello,Word!/n");
return
0;
}
用gcc編譯程序
輸入命令:gcc
hello_test.c
輸入命令:ls
顯示:a.out
hello_test.c
輸入命令:./a.out
//執行程序
2.使用Makefile
(1)創建Makefile,在hello_test.c所在目錄輸入
vi
Makefile
(2)輸入Makefile內容。在vi插入模式下輸入:
hello_test
:
hello_test.c
gcc
-o
hello_test
hello_test.c
//特別注意
gcc前面不是空格,而是tab間隔符,否則會出現makefile:2:
***
遺漏分隔符錯誤
clean
:
rm
-fr
hello_test
*.o
*.core
(3)輸入make,屏幕輸出
gcc
-o
hello_test
hello_test.c,表示編譯已經通過。
生成
hello_test。

㈧ makefile 文件介紹

makefile文件主要有以下五種組成部分。顯式規則:顯式規則說明了生成一個或多個目標文件的方法和步驟。這是在編寫makefile文件時明顯指出的,包括要生成的文件、生成文件的依賴文件以及生成的命令等。隱式規則:由於make工具有自動推導的功能,所以在編寫makefile文件的時候可以利用該規則,簡略地書寫makefile。再由 make 工具本身自動推導需要使用的規則。變數的定義: make工具支持變數的定義,這些變數往往都是字元串,因此makefile中的變數更像是C語言中的宏。當makefile被執行時,其中的變數都會被展開到相應的引用位置上。
文件指示:其包括三個部分,一個是在一個makefile中引用另一個makefile,就像C語言中的include一樣。另一個是指根據某些情況指定makefile中的有效部分,就像C語言中的預編譯tlif一樣。還有就是定義一個多行的命令。
注釋: makefile 中支持行注釋,這一點需要特別注意。makefile 中的注釋和 shell腳本一樣,其注釋是用「#」字元。如果需要在 makefile中使用「#」字元,可以用『\』對其進行轉義。例如,「\#」表示一個『#』字元。makefile文件的文件名最好命名為makefile或者Makefile。因為在默認的情況下,make命令會在當前目錄下按順序找尋這兩個文件進行解釋。用戶也可以為makefile文件自定義一個文件名,例如,Make.makefile,Make.admin等。

閱讀全文

與makefile命令相關的資料

熱點內容
說明wpf加密過程 瀏覽:142
java讀取list 瀏覽:702
iis7gzip壓縮 瀏覽:39
有什麼安卓機打吃雞好 瀏覽:597
三星u盤加密狗 瀏覽:473
php函數的返回值嗎 瀏覽:586
國企穩定程序員 瀏覽:327
編程貓如何使用教程視頻 瀏覽:218
安卓遠端網頁如何打日誌 瀏覽:218
壓縮flash大小 瀏覽:993
解壓的玩具教程可愛版 瀏覽:366
哪個求職app比較靠譜 瀏覽:888
java的讀法 瀏覽:59
nod32區域網伺服器地址 瀏覽:1002
數碼科技解壓 瀏覽:236
新網的雲伺服器管理界面復雜嗎 瀏覽:367
無人聲解壓強迫症視頻 瀏覽:573
計算機編譯運行 瀏覽:639
單片機嵌套 瀏覽:988
python字元串中符號 瀏覽:787