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

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

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

Makefile 解析

一個(gè)工程中的源文件可能很多的情況下,按其類型、功能、模塊分別放到若干個(gè)目錄中,makefile定義了一系列的規(guī)則,用以指定那些需要先編譯,那些需要后編譯,那些需要重新編譯,和一些更復(fù)雜的操作。,makefile的好處就是自動(dòng)化編譯,一點(diǎn)寫(xiě)好,只需要make命令,整個(gè)工程就會(huì)自動(dòng)編譯,提高了項(xiàng)目的管理能力和軟件的開(kāi)發(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)就是冒號(hào)后面的那些.c.h文件。每一個(gè).o 文件都有一組依賴文件,這些.o的文件又是執(zhí)行文件edit的依賴文件。其實(shí)依賴關(guān)系就是說(shuō)明了目標(biāo)文件是有那些文件申城的,換言之就是目標(biāo)文件是哪些文件更新的。

定義好依賴關(guān)系后,后面的一行就定義了如何生成目標(biāo)文件的操作系統(tǒng)命令,一定要以tab鍵開(kāi)頭。記住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í)行后面定義的命令來(lái)生成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)文件。在查找過(guò)程中,如果出現(xiàn)錯(cuò)誤,比如被依賴的文件找不到,那么make就會(huì)直接退出,并報(bào)錯(cuò),但是對(duì)于所定義的命令的錯(cuò)誤,或者是編譯不成功,make會(huì)置之不理。但是當(dāng)查找到一個(gè)文件的依賴關(guān)系的時(shí)候,并且執(zhí)行依賴關(guān)系之后命令,冒號(hào)后面的依賴文件如果還是不存在,那么make就會(huì)退出。

由上可知,想clean這種沒(méi)有被第一個(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) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   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>
            亚洲免费一级电影| 午夜精品99久久免费| 亚洲美女网站| 91久久精品美女高潮| 亚洲欧洲在线免费| 亚洲毛片网站| 一区二区三区免费看| 一本一本久久| 亚洲一区二区三区四区视频| 亚洲一区二区三区四区中文| 欧美一级成年大片在线观看| 久久久久一区二区三区四区| 牛牛国产精品| 免费看亚洲片| 午夜免费日韩视频| 亚洲精品乱码| 亚洲精品视频在线看| aa亚洲婷婷| 欧美在线一二三四区| 久久久夜色精品亚洲| 久久九九全国免费精品观看| 欧美韩日一区| 亚洲图片自拍偷拍| 免费在线亚洲欧美| 国产精品普通话对白| 精品va天堂亚洲国产| 一区二区三区视频观看| 久久亚洲精品伦理| 亚洲精品国产欧美| 香蕉国产精品偷在线观看不卡 | 亚洲成人直播| 99精品视频免费观看| 欧美一二三视频| 欧美日韩久久| 亚洲国内在线| 久久人人97超碰精品888| 亚洲剧情一区二区| 久久亚洲一区| 国产精品永久入口久久久| 亚洲高清资源| 久久久在线视频| 亚洲一区欧美二区| 欧美日韩在线免费视频| 亚洲精品乱码久久久久久| 久久九九热re6这里有精品| 亚洲美女免费精品视频在线观看| 久久国产精品亚洲va麻豆| 欧美私人网站| 亚洲午夜精品久久久久久浪潮 | 久久亚洲二区| 国产日韩一区| 亚洲一区二区三区免费在线观看| 欧美激情1区2区3区| 久久蜜桃av一区精品变态类天堂| 国产日韩精品视频一区二区三区| 午夜久久影院| 亚洲欧美日韩中文视频| 国产精品视频内| 亚洲女性喷水在线观看一区| 亚洲精品麻豆| 欧美日韩直播| 亚洲女性喷水在线观看一区| 亚洲精品综合| 国产精品成人观看视频免费| 欧美激情自拍| 亚洲视频欧美视频| 欧美性做爰毛片| 亚洲你懂的在线视频| 亚洲网站视频福利| 国产欧美一区二区三区另类精品| 性刺激综合网| 久久国产乱子精品免费女| 国产日产欧产精品推荐色| 欧美一区二区在线免费观看| 欧美一级理论片| 在线播放一区| 99re热精品| 国产日韩欧美综合一区| 美女性感视频久久久| 欧美成ee人免费视频| 亚洲一区二区三区中文字幕| 亚洲欧美www| 91久久线看在观草草青青| 正在播放亚洲| 亚洲人成人一区二区在线观看| 亚洲免费电影在线观看| 国产欧美一区二区三区在线看蜜臀 | 欧美v国产在线一区二区三区| 亚洲乱码精品一二三四区日韩在线 | 欧美视频在线免费| 欧美在线播放视频| 久久久蜜桃一区二区人| 日韩一区二区福利| 亚洲小视频在线观看| 极品少妇一区二区三区| 亚洲国产高清自拍| 国产精品系列在线| 亚洲国产成人久久综合| 国产精品视频大全| 欧美va天堂在线| 国产精品素人视频| 亚洲福利视频网站| 国产日韩精品在线| 亚洲美女电影在线| 一区二区三区在线高清| 亚洲视频免费在线| 亚洲精品乱码久久久久久| 亚洲欧美日韩一区二区三区在线观看| 亚洲国产欧美在线人成| 亚洲亚洲精品在线观看| 亚洲免费播放| 免费高清在线视频一区·| 久久久国产精彩视频美女艺术照福利| 欧美日韩国产综合一区二区| 久久免费观看视频| 欧美日韩一区二区三区在线 | 亚洲人在线视频| 午夜久久久久久| 亚洲一区二区三区欧美| 99v久久综合狠狠综合久久| 久久综合九色综合欧美就去吻| 中文在线资源观看网站视频免费不卡 | 久久九九国产| 久久不射网站| 国产精品第一区| 日韩一级不卡| 亚洲精品影视在线观看| 久久日韩精品| 老司机午夜精品| 韩国三级电影久久久久久| 欧美呦呦网站| 久久另类ts人妖一区二区| 国产日韩欧美高清免费| 翔田千里一区二区| 久久裸体艺术| 亚洲国产精品99久久久久久久久| 欧美中文字幕第一页| 久久激情视频| 国外精品视频| 麻豆精品视频在线观看视频| 美国三级日本三级久久99| 在线播放中文一区| 久久综合九色| 亚洲电影成人| 一区二区三区久久久| 欧美日韩亚洲综合| 一区二区三区精密机械公司 | 欧美日韩一区二区在线 | 亚洲天堂第二页| 午夜欧美大尺度福利影院在线看| 国产精品日韩在线| 亚洲综合大片69999| 欧美亚洲日本国产| 国产伦精品一区二区三区高清| 亚洲一区二区三区四区在线观看 | 亚洲欧美日韩在线| 久久久久国产成人精品亚洲午夜| 精品成人免费| 蜜臀va亚洲va欧美va天堂| 91久久久久| 欧美一区二区三区免费看| 激情久久婷婷| 欧美日本高清| 亚洲在线观看免费视频| 久久深夜福利免费观看| 亚洲日本国产| 国产精品va在线播放| 欧美一区二区在线播放| 欧美xx69| 午夜视频一区在线观看| 亚洲国产精品一区二区www在线 | 一本色道久久| 欧美午夜在线| 久久综合九色综合欧美就去吻| 亚洲国产精品精华液2区45| 亚洲精品乱码久久久久久黑人| 欧美亚洲成人免费| 久久久www成人免费无遮挡大片 | 久久视频在线视频| 亚洲日本va午夜在线电影| 欧美日韩一区二区三区| 久久久最新网址| 亚洲毛片播放| 久久一区中文字幕| 亚洲欧美另类在线| 亚洲精品日韩综合观看成人91| 国产精品久久久久久久久久ktv | 午夜欧美视频| 日韩视频免费观看高清在线视频 | 欧美日韩成人| 久久久www免费人成黑人精品| 99re视频这里只有精品| 美女主播精品视频一二三四| 亚洲欧美日韩区| 正在播放亚洲一区| 亚洲国产婷婷| 尤妮丝一区二区裸体视频| 国产精品系列在线播放| 欧美日韩国产一区二区| 免费成人在线观看视频|