Makefile文件規(guī)則

有了這個Makefile文件撕予,不論我們什么時候修改了源程序當中的什么文件逃呼,我們只要執(zhí)行make命令绞惦,我們的編譯器都只會去編譯和我們修改的文件有關(guān)的文件逼纸,其它的文件它連理都不想去理的。

下面我們學習Makefile是如何編寫的济蝉。

在Makefile中也#開始的行都是注釋行.Makefile中最重要的是描述文件的依賴關(guān)系的說明杰刽。一般的格式是:

target:components

TAB rule

第一行表示的是依賴關(guān)系。第二行是規(guī)則王滤。

比如說我們上面的那個Makefile文件的第二行贺嫂。

main:main.o mytool1.o mytool2.o

表示我們的目標(target)main的依賴對象(components)是main.o mytool1.omytool2.o 當倚賴的對象在目標修改后修改的話,就要去執(zhí)行規(guī)則一行所指定的命令雁乡。就象我們的上面那個Makefile第三行所說的一樣要執(zhí)行 gcc-o main main.o mytool1.o mytool2.o 注意規(guī)則一行中的TAB表示那里是一個TAB鍵

Makefile有三個非常有用的變量第喳。分別是$@,$^踱稍,$<代表的意義分別是:

$@--目標文件曲饱,$^--所有的依賴文件悠抹,$<--第一個依賴文件。

如果我們使用上面三個變量扩淀,那么我們可以簡化我們的Makefile文件為:

# 這是簡化后的Makefile

main:main.o mytool1.o mytool2.o

gcc -o $@ $^

main.o:main.c mytool1.h mytool2.h

gcc -c $<

mytool1.o:mytool1.c mytool1.h

gcc -c $<

mytool2.o:mytool2.c mytool2.h

gcc -c $<

經(jīng)過簡化后,我們的Makefile是簡單了一點楔敌,不過人們有時候還想簡單一點。這里我們學習一個Makefile的缺省規(guī)則

.c.o:

gcc -c $<

這個規(guī)則表示所有的 .o文件都是依賴與相應(yīng)的.c文件的驻谆。例如mytool.o依賴于mytool.c這樣Makefile還可以變?yōu)椋?/p>

# 這是再一次簡化后的Makefile

main:main.o mytool1.o mytool2.o

gcc -o $@ $^

.c.o:

gcc -c $<

好了卵凑,我們的Makefile 也差不多了,如果想知道更多的關(guān)于Makefile的規(guī)則胜臊,可以查看相應(yīng)的文檔勺卢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市象对,隨后出現(xiàn)的幾起案子黑忱,更是在濱河造成了極大的恐慌,老刑警劉巖勒魔,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杨何,死亡現(xiàn)場離奇詭異,居然都是意外死亡沥邻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門羊娃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唐全,“玉大人,你說我怎么就攤上這事蕊玷∮世” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵垃帅,是天一觀的道長延届。 經(jīng)常有香客問我,道長贸诚,這世上最難降的妖魔是什么方庭? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮酱固,結(jié)果婚禮上械念,老公的妹妹穿的比我還像新娘。我一直安慰自己运悲,他們只是感情好龄减,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著班眯,像睡著了一般希停。 火紅的嫁衣襯著肌膚如雪烁巫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天宠能,我揣著相機與錄音亚隙,去河邊找鬼。 笑死棍潘,一個胖子當著我的面吹牛恃鞋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亦歉,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼恤浪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肴楷?” 一聲冷哼從身側(cè)響起水由,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赛蔫,沒想到半個月后砂客,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡呵恢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年鞠值,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渗钉。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡彤恶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鳄橘,到底是詐尸還是另有隱情声离,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布瘫怜,位于F島的核電站术徊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鲸湃。R本人自食惡果不足惜赠涮,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唤锉。 院中可真熱鬧世囊,春花似錦、人聲如沸窿祥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗤瞎,卻和暖如春墙歪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贝奇。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工虹菲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掉瞳。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓毕源,卻偏偏與公主長得像,于是被迫代替她去往敵國和親陕习。 傳聞我的和親對象是個殘疾皇子霎褐,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 來自陳浩的一片老文,但絕對營養(yǎng)该镣。 示例工程:3 個頭文件*.h冻璃,和 8 個 C 文件*.c。 初 編譯過程损合,源文件...
    周筱魯閱讀 4,688評論 0 17
  • 1.源程序的編譯 在Linux下面,如果要編譯一個C語言源程序,我們要使用GNU的gcc編譯器. 下面我們以一個實...
    KINGZ1993閱讀 3,168評論 0 4
  • pwd返回了根目錄 這時候看到系統(tǒng)返回了一個 /省艳,這個 / 被我們稱為系統(tǒng)的 根目錄(root),這個位置也就是我...
    夏威夷的芒果閱讀 718評論 0 1
  • makefile關(guān)系到整個工程的編譯規(guī)則嫁审,一個工程中的源文件不計其數(shù)跋炕,按其類型、功能律适、模塊分別放在若干的目錄當中枣购,...
    Joe_HUST閱讀 1,876評論 0 3
  • 一輛車 一箱百加得 我要醉過的地方都記得 我
    太宰不治閱讀 142評論 1 3