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

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>
            亚洲午夜免费福利视频| 日韩视频不卡中文| 亚洲激情av在线| 国产九区一区在线| 国产精品欧美精品| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美性视频网站| 欧美系列电影免费观看| 欧美日韩专区| 国产啪精品视频| 1000部国产精品成人观看| 黄色成人在线免费| 亚洲美女中出| 午夜精品福利视频| 欧美91福利在线观看| 亚洲精品国精品久久99热| 999亚洲国产精| 欧美一区亚洲二区| 欧美激情一区二区三区在线视频观看 | 亚洲日本成人| 亚洲一区尤物| 牛夜精品久久久久久久99黑人| 亚洲国产一区二区三区在线播| 一区二区三区.www| 久久视频在线免费观看| 欧美日韩裸体免费视频| 国产一区二区观看| 一区二区免费在线播放| 老妇喷水一区二区三区| 一本久道综合久久精品| 裸体女人亚洲精品一区| 国产欧美日韩一区二区三区在线观看| 亚洲国产精品传媒在线观看| 亚洲一区二区在线免费观看视频| 久久综合久久久久88| 一区二区三区视频在线播放| 老司机免费视频一区二区| 国产精品视频导航| 一区二区三区波多野结衣在线观看| 欧美va天堂在线| 99re66热这里只有精品4| 日韩网站在线| 久久久精品国产一区二区三区 | 一区二区国产在线观看| 久热国产精品| 国产亚洲人成网站在线观看| 一区二区三区|亚洲午夜| 你懂的成人av| 久久黄色影院| 国产日韩欧美一区二区三区在线观看 | 亚洲综合日韩中文字幕v在线| 美女诱惑黄网站一区| 国产一区二区日韩精品欧美精品| 亚洲理论电影网| 欧美成人xxx| 久久成人18免费网站| 国产精品国产精品国产专区不蜜| 日韩一级在线| 亚洲国产一区二区三区a毛片| 久久男人资源视频| 精品1区2区3区4区| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲一区二区视频| 国产精品综合| 欧美在线关看| 羞羞答答国产精品www一本| 午夜精品视频在线观看| 国产欧美一区二区在线观看| 亚洲欧美日韩爽爽影院| 中文av一区二区| 国产免费观看久久黄| 久久久久久久成人| 久久婷婷麻豆| 亚洲精品视频在线观看网站| 欧美激情精品久久久久久| 欧美福利在线观看| 一区二区三区视频免费在线观看| 欧美一区二区视频97| 亚洲欧美国产毛片在线| 国产欧美精品一区aⅴ影院| 久久青草欧美一区二区三区| 久久久久**毛片大全| 亚洲激情电影在线| 亚洲人成人77777线观看| 欧美午夜精品一区| 久久久久久91香蕉国产| 欧美福利在线| 欧美亚洲一区二区三区| 久久婷婷蜜乳一本欲蜜臀| 久久久久久夜精品精品免费| 欧美性大战久久久久久久蜜臀| 亚洲欧美综合v| 久久成人综合网| 亚洲美女av电影| 亚洲综合视频1区| 亚洲欧洲精品一区二区精品久久久| 亚洲国产日韩在线一区模特| 欧美性开放视频| 老司机免费视频一区二区三区| 男男成人高潮片免费网站| 亚洲尤物在线视频观看| 久久久久久久久岛国免费| 一区二区av在线| 欧美亚洲免费在线| 99re6这里只有精品| 欧美一区二区免费观在线| 日韩午夜在线播放| 欧美一区二区女人| 亚洲视频免费在线观看| 久久久精品久久久久| 亚欧美中日韩视频| 欧美人与性动交cc0o| 亚洲激情专区| 久久精品国产久精国产爱| 中文久久精品| 欧美福利在线| 美日韩免费视频| 国产视频精品va久久久久久| 91久久精品美女| 亚洲高清成人| 欧美伊人久久久久久久久影院| 日韩午夜视频在线观看| 久久久久久久一区二区三区| 欧美中文在线视频| 欧美精品激情blacked18| 美国十次了思思久久精品导航| 国产精品久久久久久av下载红粉| 欧美国产成人在线| 激情综合色综合久久| 性色av一区二区三区红粉影视| 亚洲欧美电影院| 欧美日韩一区三区| 亚洲国产专区校园欧美| 在线观看欧美成人| 久久国产黑丝| 久久综合色婷婷| 国产一区二区三区在线播放免费观看| 一区二区免费在线观看| 一区二区三区精品在线| 欧美福利视频一区| 欧美国产视频一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 久久久av水蜜桃| 美女日韩在线中文字幕| 亚洲电影免费观看高清完整版| 久久精品国产精品| 欧美电影免费观看高清完整版| 一区在线播放| 欧美福利视频网站| 99精品视频一区| 亚洲欧美日韩国产综合在线| 国产精品久久久久9999| 香蕉久久精品日日躁夜夜躁| 久久久久一本一区二区青青蜜月| 国产最新精品精品你懂的| 久久精品人人做人人爽| 国产伦精品一区二区三区视频黑人 | 久久精品综合网| 免费观看在线综合| 91久久夜色精品国产九色| 欧美另类videos死尸| 亚洲视频成人| 国产一区二区毛片| 久久久久这里只有精品| 欧美一区二区视频97| 在线欧美影院| 欧美日本成人| 久久www免费人成看片高清| 美女精品一区| 亚洲一卡二卡三卡四卡五卡| 国产精品午夜春色av| 欧美xx69| 亚洲欧美激情视频在线观看一区二区三区 | 国产亚洲va综合人人澡精品| 久久久亚洲午夜电影| 99热这里只有成人精品国产| 久久精品动漫| 亚洲伦理自拍| 国产欧美一区二区三区沐欲 | 欧美国产日韩精品| 亚洲一区二区三区中文字幕| 蜜臀91精品一区二区三区| 亚洲欧洲精品一区二区三区不卡 | 久久精品女人天堂| 亚洲美女在线观看| 玖玖视频精品| 亚洲尤物视频在线| 亚洲国产精品成人va在线观看| 国产精品久久77777| 蜜桃精品久久久久久久免费影院| 亚洲欧美乱综合| 久久久免费av| 中日韩高清电影网| 亚洲国产欧美一区二区三区同亚洲 | 久久久久久免费| 亚洲视频国产视频| 亚洲精品护士| 亚洲成色www8888| 欧美1区免费| 久久久99久久精品女同性|