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

posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

1.1 makefile helloworld

Makefile的規則如下:

target ... : prerequisites ...

command ... ...

target可以是一個目標文件,也可以是Object File(例如helloworld.obj),也可以是執行文件和標簽。

prerequisites就是生成target所需要的文件或是目標。

command也就是要達到target這個目標所需要執行的命令。這里沒有說“使用生成target所需要執行的命令”,是因為target可能是標簽。需要注意的是command前面必須是TAB鍵,而不是空格,因此喜歡在編輯器里面將TAB鍵用空格替換的人需要特別小心了。

我們寫程序一般喜歡寫helloworld,當我們寫了一個c的helloworld之后,我們該如何寫helloworld來編譯helloworld.c呢?

下面就是編譯helloworld的makefile。

helloworld : helloworld.o

cc -o helloworld helloworld .o

helloworld.o : helloworld.c

cc -c main.c

clean:

rm helloworld helloworl.o

之后我們執行make就可以編譯helloworld.c了,執行make clean就可以清除編譯結果了(其實就是刪除helloworld helloworl.o)。

可能有人問為什么執行make就會生成helloworld呢?這得從make的默認處理說起:make將makefile的第一個target作為作為最終的

target,凡是這個規則依賴的規則都將被執行,否則就不會執行。所以在執行make的時候,clean這個規則就沒有被執行。

上面的是最簡單的makefile,復雜點makefile就開始使用高級點的技巧了,例如使用變量,使用隱式規則,執行負責點shell命令(常見的是字符串處理和文件處理等),這里不打算介紹這些規則,后面在分析android的makefile時會結合具體代碼進行具體分析,大家可以先看看陳皓的《跟我一起寫makefile》來了解了解。

makefile的大體的結構是程序樹形的,如下:

image

這樣寫起makefile也簡單,我們將要達到的目標作為第一個規則,然后將目標分解成子目標,然后一個個寫規則,依次類推,直到最下面的規則很容易實現為止。這其實和算法里面的分治法很像,將一個復雜的問題分而治之。

說到樹,我想到了編譯原理里面的語法分析,語法分析里面有自頂而下的分析方法和自底而下的分析方法。當然makefile并不是要做語法分析,而是要做與語法分析分析相反的事。(語法分析要做的是一個句子是不是根據語法可以推出來,而makefile要做的是根據規則生成一個command 執行隊列。)不過makefile的規則和詞法分析還是很像的。下面出一道編譯原理上面的一個例子,大家可以理解一下makefile和詞法分析的不同點和相同點:

<標識符> -> <字母><字母數字串>
<字母數字串> -> <字母><字母數字串>|<數字><字母數字串>|<下劃線><字母數字串>|ε
<無符號整數> -> <數字><數字串>
<數字串> -> <數字><數字串>|ε
<加法運算符> -> +
<減法運算符> -> -
<大于關系運算符> -> >
<大于等于關系運算符> -> >=

 

最后,介紹一下autoconfautomake,使用這兩個工具可以自動生成makefile。

autoconf

從上面的圖可以看出,通過autoscan,我們可以根據代碼生成一個叫做configure.scan的文件,然后我們編輯這個文件,參數一個configure.in的文件。接著我們寫一個makefile.am的文件,然后就可以用automake生成makefile.in,最后,根據makefile.in和configure就可以生成makefile了。在很多開源的工程里面,我們都可以看到makefile.am,configure.in,makefine.in,configure文件,還有可能看到一個十分復雜的makefile文件,許多人學習makefile的時候想通過看這個文件來學習,最終卻發現太復雜了。如果我們知道這個文件是自動生成的,就理解這個makefile文件為什么這個復雜了。

欲更加詳細的理解automake等工具,可以參考http://www.ibm.com/developerworks/cn/linux/l-makefile/

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人黑人xx视频免费观看| 国产精品一二三视频| 中文欧美字幕免费| 欧美一区=区| 亚洲国产天堂久久国产91| 狠狠网亚洲精品| 国产精品欧美日韩久久| 欧美日韩免费观看一区| 欧美黑人国产人伦爽爽爽| 亚洲伊人伊色伊影伊综合网| 亚洲欧洲偷拍精品| 乱码第一页成人| 久久精品国产免费| 免费永久网站黄欧美| 久久久久久久高潮| 亚洲高清免费视频| 国产精品v亚洲精品v日韩精品| 欧美激情视频在线播放| 欧美电影电视剧在线观看| 欧美色精品天天在线观看视频| 一区二区冒白浆视频| 国产三级欧美三级| 亚洲影院在线观看| 久久本道综合色狠狠五月| 亚洲成人在线视频网站| 亚洲国产高清一区| 久久国产直播| 国内免费精品永久在线视频| 亚洲视频在线观看三级| 另类天堂av| 欧美一区二区免费观在线| 欧美日韩日本视频| 一区二区三区视频在线看| 久久精品亚洲热| 夜夜嗨av一区二区三区免费区| 欧美一级网站| 欧美视频免费在线观看| 夜夜嗨av一区二区三区中文字幕| 久久夜色精品国产噜噜av| 一区二区三区|亚洲午夜| 国产精品久久久久999| 国产综合一区二区| 亚洲午夜羞羞片| 亚洲免费电影在线| 欧美激情一区二区三区在线视频观看 | 国产日韩欧美夫妻视频在线观看| 亚洲精品资源美女情侣酒店| 一区二区三区日韩精品| 夜夜嗨av一区二区三区| 欧美电影在线| 亚洲欧美成人网| 亚洲综合日韩在线| 国产日本欧美在线观看| 亚洲欧美日韩网| 欧美一区激情| 国产亚洲欧美一区二区三区| 欧美在线啊v| 久久成人久久爱| 亚洲激情在线观看| 一区二区三区高清视频在线观看| 欧美777四色影视在线| 欧美黄色网络| 99精品国产福利在线观看免费 | 欧美精品福利视频| 亚洲精品一区在线观看| 宅男在线国产精品| 亚洲欧美三级在线| 黄色成人免费网站| 日韩一级免费观看| 国产一区二区三区高清在线观看 | 美女视频黄a大片欧美| 亚洲三级观看| 亚洲午夜精品在线| 欧美伦理一区二区| 久久久久久午夜| 欧美专区亚洲专区| 欧美日韩另类字幕中文| **欧美日韩vr在线| 久久精品一区二区| 欧美黄污视频| 蜜桃伊人久久| 久久综合激情| 国产亚洲成年网址在线观看| 亚洲国产三级网| 在线看视频不卡| 久久影院亚洲| 欧美激情久久久久久| 一本到12不卡视频在线dvd| 99精品国产热久久91蜜凸| 欧美日本久久| 亚洲午夜久久久久久久久电影院| 亚洲人成网站在线观看播放| 91久久久久| 欧美日韩国产区一| 香蕉久久一区二区不卡无毒影院| 亚洲伊人一本大道中文字幕| 国产精品白丝jk黑袜喷水| 亚洲视频一区| 欧美本精品男人aⅴ天堂| 亚洲无吗在线| 精品88久久久久88久久久| 亚洲欧美日韩精品久久亚洲区| 国产欧美激情| 欧美日韩国产高清视频| 欧美一区二区三区四区在线观看地址| 久久久久国产精品一区| 99国产精品视频免费观看| 在线播放国产一区中文字幕剧情欧美| 麻豆av一区二区三区久久| 亚洲综合日韩中文字幕v在线| 亚洲精品一区久久久久久| 久久久久综合网| 亚洲国产精选| 精品不卡一区| 狠狠干综合网| 精品999网站| 国内精品美女在线观看| 亚洲香蕉成视频在线观看| 亚洲国产一区二区a毛片| 嫩草国产精品入口| 久久精品一区二区三区中文字幕 | 久久精品毛片| 亚洲一区二区三区免费观看| 亚洲乱亚洲高清| 中国成人在线视频| 99精品黄色片免费大全| 中文在线资源观看网站视频免费不卡| 最新国产成人在线观看| 亚洲第一在线| 亚洲精品美女久久7777777| 亚洲欧洲在线视频| 99国内精品| 久久不射电影网| 美日韩精品免费| 欧美日韩一区在线视频| 国产精品一区二区三区四区五区 | 欧美成人性网| 欧美午夜一区二区三区免费大片| 国产精品入口麻豆原神| 亚洲国产小视频| 久久国产精彩视频| 欧美韩日视频| 久久精品国产免费看久久精品| 欧美 日韩 国产精品免费观看| 国产精品超碰97尤物18| 国产精品v日韩精品| 亚洲日本在线观看| 久久综合狠狠| 一区二区三欧美| 欧美激情一区二区三区在线| 久久av最新网址| 国产视频一区二区在线观看| 亚洲一区二区三区高清不卡| 亚洲一区网站| 亚洲精品一区中文| 久久亚洲春色中文字幕| 9人人澡人人爽人人精品| 美女91精品| 亚洲人成7777| 欧美国产视频日韩| 久久在线精品| 日韩写真视频在线观看| 亚洲国产你懂的| 欧美日本高清| 国产精品久久久久久影视| 欧美一级午夜免费电影| 亚洲素人一区二区| 国内成人在线| 亚洲福利视频专区| 久久成人av少妇免费| 猫咪成人在线观看| 亚洲视频1区| 久久综合电影| 亚洲视频一起| 蜜桃伊人久久| 欧美在线视频不卡| 欧美激情视频在线播放 | 激情欧美一区| 欧美国产视频在线| 欧美三级电影精品| 国内精品久久久久久久影视麻豆| 国产乱码精品一区二区三区av| 亚洲精品日产精品乱码不卡| 欧美在线关看| 日韩视频在线观看免费| 欧美久久婷婷综合色| 日韩视频一区二区在线观看 | 久久成人一区二区| 一区二区三区四区国产| 欧美www视频| 在线观看91精品国产麻豆| 久久欧美中文字幕| 美女尤物久久精品| 一本色道**综合亚洲精品蜜桃冫| 亚洲福利视频二区| 久久夜色精品国产噜噜av| 欧美在线视频免费| 亚洲欧洲一区二区三区久久| 欧美激情1区2区3区| 欧美日韩国产一区二区三区|