青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

吾嘗終日而思矣 不如須臾之所學(xué)也

御物而行 御風(fēng)而飛
隨筆 - 10, 文章 - 1, 評論 - 9, 引用 - 0
數(shù)據(jù)加載中……

Makefile 解析

一個(gè)工程中的源文件可能很多的情況下,按其類型、功能、模塊分別放到若干個(gè)目錄中,makefile定義了一系列的規(guī)則,用以指定那些需要先編譯,那些需要后編譯,那些需要重新編譯,和一些更復(fù)雜的操作。,makefile的好處就是自動(dòng)化編譯,一點(diǎn)寫好,只需要make命令,整個(gè)工程就會(huì)自動(dòng)編譯,提高了項(xiàng)目的管理能力和軟件的開發(fā)效率。

Makefile 文件解讀

 

edit : main.o kbd.o command.o display.o \ 

insert.o search.o files.o utils.o 

cc -o edit main.o kbd.o command.o display.o \ 

insert.o search.o files.o utils.o 

 

main.o : main.c defs.h 

cc -c main.c 

kbd.o : kbd.c defs.h command.h 

cc -c kbd.c 

command.o : command.c defs.h command.h 

cc -c command.c 

display.o : display.c defs.h buffer.h 

cc -c display.c 

insert.o : insert.c defs.h buffer.h 

cc -c insert.c 

search.o : search.c defs.h buffer.h 

cc -c search.c 

files.o : files.c defs.h buffer.h command.h 

cc -c files.c 

utils.o : utils.c defs.h 

cc -c utils.c 

clean : 

rm edit main.o kbd.o command.o display.o \ 

insert.o search.o files.o utils.o 

 

反斜杠(\)是換行的意思。上述makefile文件可以命名為makefileMakefile,如果在目錄中輸入make,就可以生成edit可執(zhí)行文件。如果想要?jiǎng)h除可執(zhí)行文件或者是中間目標(biāo)文件直接make clean就行了。

依賴關(guān)系:

有上述例子可以看出,目標(biāo)文件包含兩種:執(zhí)行文件(edit)和中間目標(biāo)文件(*.obj),依賴文件(prerequisites)就是冒號后面的那些.c.h文件。每一個(gè).o 文件都有一組依賴文件,這些.o的文件又是執(zhí)行文件edit的依賴文件。其實(shí)依賴關(guān)系就是說明了目標(biāo)文件是有那些文件申城的,換言之就是目標(biāo)文件是哪些文件更新的。

定義好依賴關(guān)系后,后面的一行就定義了如何生成目標(biāo)文件的操作系統(tǒng)命令,一定要以tab鍵開頭。記住make并不管命令式怎么工作的,它只關(guān)心定義的命令。Make會(huì)比較目標(biāo)文件和依賴文件的修改日期,如果依賴文件的日期要比目標(biāo)文件的日期更新,或者是目標(biāo)文件不存在的話,make就會(huì)執(zhí)行后續(xù)定義的命令。

 

Make是如何工作的

1.       查找Makefilemakefile文件

2.       查找第一個(gè)目標(biāo)文件,并將這個(gè)文件作為最終的目標(biāo)文件

3.       查找目標(biāo)文件是否存在,或者是當(dāng)前目標(biāo)文件依賴的.o 文件的文件修改時(shí)間要比當(dāng)前目標(biāo)文件新,則執(zhí)行后面定義的命令來生成edit這個(gè)文件

4.       如果edit依賴的.o文件也存在,那么make會(huì)在當(dāng)前文件中查找目標(biāo)文件為.o文件的依賴性,如果找到則根據(jù)哪一個(gè)規(guī)則生成.o文件。

5.       根據(jù)c文件和.h文件,make生成.o文件,然后生成最終目標(biāo)文件。

 

Make會(huì)一層已成的查找文件的依賴關(guān)系,知道最終編譯出第一個(gè)目標(biāo)文件。在查找過程中,如果出現(xiàn)錯(cuò)誤,比如被依賴的文件找不到,那么make就會(huì)直接退出,并報(bào)錯(cuò),但是對于所定義的命令的錯(cuò)誤,或者是編譯不成功,make會(huì)置之不理。但是當(dāng)查找到一個(gè)文件的依賴關(guān)系的時(shí)候,并且執(zhí)行依賴關(guān)系之后命令,冒號后面的依賴文件如果還是不存在,那么make就會(huì)退出。

由上可知,想clean這種沒有被第一個(gè)目標(biāo)文件直接或間接關(guān)聯(lián),那么他后面定義的命令將不會(huì)自動(dòng)執(zhí)行。如果想顯式執(zhí)行要求make執(zhí)行clean之后的命令,“輸入make clean”就行了,用以清除所有的目標(biāo)文件,便于重新編譯。

1.       另外makefile中也可以添加一些宏定義(變量)

2.       gnu make可以實(shí)現(xiàn)自動(dòng)推倒

posted on 2011-11-17 20:04 Roger 閱讀(7975) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免播放器亚洲一区| 亚洲美女黄色| 乱码第一页成人| 久久久www成人免费毛片麻豆| 一本色道久久综合狠狠躁篇的优点 | 亚洲精品影院| 亚洲激情av| 欧美在线观看一区二区| 99国产麻豆精品| 亚洲一区二区三区在线观看视频| 亚洲欧美视频| 久久天天躁狠狠躁夜夜爽蜜月| 麻豆av一区二区三区久久| 欧美激情一级片一区二区| 最新成人在线| 亚洲欧美视频一区二区三区| 久久成人一区| 欧美激情综合亚洲一二区 | 国产精品草莓在线免费观看| 国产精品久久97| 在线观看不卡| 午夜精品亚洲一区二区三区嫩草| 久久久久免费观看| 亚洲精品在线观| 久久九九全国免费精品观看| 欧美日韩国产一中文字不卡| 国产亚洲永久域名| 亚洲伦理精品| 久久久久久久网站| 一本色道久久| 欧美成人高清视频| 国内精品久久久久久久影视蜜臀 | 亚洲手机视频| 久久久久久久国产| 国产精品美女主播| 最新国产拍偷乱拍精品 | 午夜日韩激情| 亚洲国产精品va在线观看黑人| 久久夜色精品| 99在线视频精品| 猫咪成人在线观看| 蜜臀久久久99精品久久久久久| 久久久av毛片精品| 欧美日韩一区二区三区四区五区| 国产精品午夜春色av| 在线精品视频一区二区| 性欧美video另类hd性玩具| 美玉足脚交一区二区三区图片| 久久精品99无色码中文字幕| 亚洲深夜福利网站| 免费成人高清| 香蕉av777xxx色综合一区| 欧美日韩成人网| 亚洲国产精品久久久久久女王| 欧美亚洲视频一区二区| 99精品免费视频| 美女主播一区| 亚洲高清激情| 欧美α欧美αv大片| 久久精品99无色码中文字幕| 国产亚洲毛片在线| 久久人人爽人人爽| 久久久久久黄| 在线看一区二区| 欧美成人精品一区二区| 老司机久久99久久精品播放免费 | 伊人色综合久久天天| 久久久噜噜噜久久狠狠50岁| 欧美成人在线影院| 亚洲日本中文字幕免费在线不卡| 美女主播精品视频一二三四| 亚洲精品一区二区三区av| 亚洲国产精品久久久久久女王| 欧美大片国产精品| 亚洲自拍16p| 西西人体一区二区| 精品69视频一区二区三区| 欧美aa在线视频| 欧美高清你懂得| 一区二区三区久久精品| 一区二区三区免费在线观看| 国产精品久久久免费| 欧美专区在线播放| 久久久久欧美| 一本久久综合| 亚洲免费综合| 1024日韩| 99国产精品久久| 国产三级欧美三级日产三级99| 老巨人导航500精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲精品乱码久久久久久久久| 9i看片成人免费高清| 国产永久精品大片wwwapp| 欧美激情1区2区3区| 欧美日韩一级黄| 久久一区二区三区四区| 另类酷文…触手系列精品集v1小说| 亚洲美女在线看| 先锋影音一区二区三区| 99精品久久久| 久久久www成人免费无遮挡大片| 亚洲精品综合精品自拍| 亚洲欧美在线看| 在线视频亚洲一区| 久久香蕉精品| 久久精品国产免费观看| 欧美成人一区在线| 国产精品久久午夜夜伦鲁鲁| 狠狠色伊人亚洲综合成人| 亚洲欧洲精品一区二区| 国内精品久久久久影院优| 欧美成人午夜影院| 亚洲一区二区三区在线观看视频 | 国产精品成人午夜| 日韩网站免费观看| 欧美一区二区在线视频| 亚洲国产毛片完整版| 欧美激情亚洲精品| 欧美中文字幕久久| 欧美性猛交xxxx乱大交蜜桃 | 亚洲在线成人精品| 麻豆国产精品va在线观看不卡| 欧美中文字幕视频| 国产精品久久久久77777| 欧美激情第1页| 一区精品在线播放| 久久精品72免费观看| 久久av二区| 国产精品自拍视频| 亚洲图片在区色| 亚洲一区在线免费| 国产精品99一区| 亚洲视频在线观看| 亚洲电影在线| 欧美激情视频一区二区三区在线播放| 国产日韩欧美亚洲一区| 亚洲一区二区毛片| 性做久久久久久免费观看欧美| 国产精品v欧美精品∨日韩| 一区二区91| 香蕉国产精品偷在线观看不卡 | 狠狠色狠狠色综合日日91app| 亚洲综合视频在线| 久久久免费av| 在线播放亚洲| 欧美大片18| 一区二区激情| 欧美在线综合| 在线观看日韩一区| 欧美成人午夜免费视在线看片| 亚洲日本中文字幕| 亚洲综合精品一区二区| 国产欧美日韩在线| 久久久久国内| 亚洲啪啪91| 亚洲欧美中文日韩在线| 国产一区二区看久久| 你懂的国产精品| 中文国产一区| 久热精品视频在线观看一区| 亚洲精品一线二线三线无人区| 一区二区三区在线高清| 亚洲网站在线观看| 久久久久久久久久久久久9999| 1769国产精品| 一区二区三区不卡视频在线观看| 亚洲免费小视频| 亚洲男女毛片无遮挡| 国产精品久久久久aaaa樱花| 狠久久av成人天堂| 欧美一级免费视频| 久久男人资源视频| 欧美日韩国语| 1024国产精品| 免费不卡视频| 久久久精品日韩| 99精品久久久| 久久精品免费观看| 欧美一区二区三区的| 在线成人欧美| 国产精品成人一区二区| 久久久综合香蕉尹人综合网| 亚洲精品一区二区三区四区高清| 午夜精品福利一区二区蜜股av| 亚洲第一页在线| 国产日韩欧美综合| 欧美日韩三级在线| 欧美中文在线观看国产| 夜夜嗨av一区二区三区四区| 久久综合久久综合这里只有精品| 日韩写真视频在线观看| 国产深夜精品| 99视频在线观看一区三区| 亚洲一区黄色| 日韩午夜av| 91久久精品一区| 怡红院精品视频| 国产一本一道久久香蕉| 国产精品日韩欧美一区二区|