溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)中怎么使用Makefile

發(fā)布時間:2022-01-26 17:06:03 來源:億速云 閱讀:147 作者:zzz 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Linux系統(tǒng)中怎么使用Makefile”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Linux系統(tǒng)中怎么使用Makefile

1.Makefile簡介

使用GNU Make工具來管理程序是每個Linux工程師必須掌握的技能。Make能夠使整個程序的編譯、鏈接只需要一個命令(make)就可以完成。Make的工作主要依賴于一個叫為Makefile的文件。Makefile文件描述了整個程序的編譯,連接等規(guī)則。其中包括:工程中的哪些源文件需要編譯以及如何編譯,如何最后產(chǎn)生我們想要得可執(zhí)行文件。

2、Makefile構(gòu)成-規(guī)則

Makefile中最重要的組成部分是“規(guī)則”規(guī)則:用于說明如何生成目標(biāo)文件,規(guī)則的格式如下:targets : prerequisitescommand目標(biāo) 依賴 命令特別提供:命令需要使用【TAB】鍵空格

3、Makefile構(gòu)成-偽目標(biāo)

Makefile中把那些只包含命令,沒有任何依賴的目標(biāo)稱為”偽目標(biāo)”(phony targets)..PHONY : cleanclean :rm –f hello main.o func.o“.PHONY” 將“clean”目標(biāo)聲明為偽目標(biāo)

4、Makefile構(gòu)成-最終目標(biāo)

1.當(dāng)一個makefile中有多條規(guī)則時,如何單獨(dú)執(zhí)行某條規(guī)則?  make led.o      (帶一個目標(biāo)名,自動判斷)\2. 如果用戶沒有指定執(zhí)行某一條規(guī)則,make會默認(rèn)執(zhí)行makefile中的第1條規(guī)則,而這條規(guī)則中的目標(biāo)稱之為:最終目標(biāo)

5、Makefile規(guī)則-變量

使用變量前:app1: app1.o func1.o func2.ogcc app1.o func1.o func2.o -o app1app2: app2.o func1.o func2.ogcc app2.o func1.o func2.o -o app2使用變量后:obj=func1.o func2.oapp1: app1.o (obj) -o app1app2: app2.o (obj) -o app2重復(fù)使用的名字,可以用變量表示。沒有特別的類型區(qū)別。使用時加在中,用戶除了可以自己定義變量外,還可以使用存在存在系統(tǒng)已經(jīng)定義好的默認(rèn)變量。^:代表所有的依賴文件 :代表目標(biāo)這些都是相對于目標(biāo)名和依賴名來說的,如led.o:led.S這些都是相對于目標(biāo)名和依賴名來說的,如led.o:led.S

6、Makefile規(guī)則-變量

使用前:led.o : led.Sarm-linux-gcc -g –o led.o -c led.S使用后:led.o : led.Sarm-linux-gcc -g –o ^

7、Makefile構(gòu)成-通用規(guī)則

當(dāng)一個makefile中有許多類似的規(guī)則時,如何將這些規(guī)則合并為一條通用規(guī)則?%.o :%.S  arm-linux-gcc -g -o kslasjd -o klsdjalkdj3.使用技巧-去回顯Makefile中“#”字符后的內(nèi)容被視作注釋。hello: hello.c@gcc hello.c –o hello@:@:取消回顯 (演示)

3.使用技巧-文件名make命令默認(rèn)在當(dāng)前目錄下尋找名字為makefile或者M(jìn)akefile的工程文件,當(dāng)名字不為這兩者之一時,可以使用如下方法指定:make –f 文件名是Makefile文件

“Linux系統(tǒng)中怎么使用Makefile”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI