精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux Automake工具生成Makefile軟件實現步驟

運維 系統運維
在本文中,將給大家介紹如何使用Linux Automake和automake兩個工具來幫助我們自動地生成符合自由軟件慣例的Makefile,這樣就可以象常見的GNU程序一樣,只要使用“./configure”,“make”,“make instal”就可以把程序安裝到Linux系統中去了。

使用的環境,本文所提到的程序是基于Linux發行版本:Fedora Core release 1,它包含了我們要用到的Linux Automake,automake。 從helloworld入手,我們從大家最常使用的例子程序helloworld開始。 下面的過程如果簡單地說來就是:新建三個文件:
helloworld.c
configure.in
Makefile.am

然后執行:
aclocal; autoconf; automake --add-missing; ./configure; make; ./helloworld
就可以看到Makefile被產生出來,而且可以將helloworld.c編譯通過。
很簡單吧,幾條命令就可以做出一個符合慣例的Makefile,感覺如何呀。

現在開始介紹Linux Automake工具生成Makefile軟件實現步驟詳細的過程:

1、建目錄
在你的工作目錄下建一個helloworld目錄,我們用它來存放helloworld程序及相關文件,如在/home/my/build下:
$ mkdir helloword
$ cd helloworld

2、 helloworld.c
然后用你自己最喜歡的編輯器寫一個hellowrold.c文件,如命令:vi helloworld.c。使用下面的代碼作為helloworld.c的內容。
 

  1. int main(int argc, char** argv)  
  2. {  
  3. printf("Hello, Linux World!\n");  
  4. return 0;  
  5. }  

完成后保存退出。
現在在helloworld目錄下就應該有一個你自己寫的helloworld.c了。

3、生成configure
我們使用autoscan命令來幫助我們根據目錄下的源代碼生成一個configure.in的模板文件。
命令:
$ autoscan
$ ls
configure.scan helloworld.c
執行后在hellowrold目錄下會生成一個文件:configure.scan,我們可以拿它作為configure.in的藍本。
現在將configure.scan改名為configure.in,并且編輯它,按下面的內容修改,去掉無關的語句:
configure.in內容開始
 

  1. # -*- Autoconf -*-  
  2. # Process this file with autoconf to produce a configure script.   
  3. AC_INIT(helloworld.c)  
  4. AM_INIT_AUTOMAKE(helloworld, 1.0)   
  5. # Checks for programs.  
  6. AC_PROG_CC   
  7. # Checks for libraries.   
  8. # Checks for header files.   
  9. # Checks for typedefs, structures, and compiler characteristics.   
  10. # Checks for library functions.  
  11. AC_OUTPUT(Makefile)  

configure.in內容結束
然后執行命令aclocal和autoconf,分別會產生aclocal.m4及configure兩個文件:
 

  1. $ aclocal   
  2. $ls   
  3. aclocal.m4 configure.in helloworld.c   
  4. $ autoconf   
  5. $ ls   
  6. aclocal.m4 autom4te.cache configure configure.in helloworld.c   

 

大家可以看到configure.in內容是一些宏定義,這些宏經autoconf處理后會變成檢查系統特性、環境變量、軟件必須的參數的shell腳本。 autoconf 是用來生成自動配置軟件源代碼腳本(configure)的工具。configure腳本能獨立于autoconf運行,且在運行的過程中,不需要用戶的干預。 要生成configure文件,你必須告訴autoconf如何找到你所用的宏。方式是使用aclocal程序來生成你的aclocal.m4。
 
aclocal根據configure.in文件的內容,自動生成aclocal.m4文件。aclocal是一個perl 腳本程序,它的定義是:“aclocal - create aclocal.m4 by scanning configure.ac”。 autoconf從configure.in這個列舉編譯軟件時所需要各種參數的模板文件中創建configure。 autoconf需要GNU m4宏處理器來處理aclocal.m4,生成configure腳本。 m4是一個宏處理器。將輸入拷貝到輸出,同時將宏展開。宏可以是內嵌的,也可以是用戶定義的。除了可以展開宏,m4還有一些內建的函數,用來引用文件,執行命令,整數運算,文本操作,循環等。m4既可以作為編譯器的前端,也可以單獨作為一個宏處理器。

4、新建Makefile.am
新建Makefile.am文件,命令:
$ vi Makefile.am
內容如下:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=helloworld
helloworld_SOURCES=helloworld.c
automake會根據你寫的Makefile.am來自動生成Makefile.in。
Makefile.am中定義的宏和目標,會指導automake生成指定的代碼。例如,宏bin_PROGRAMS將導致編譯和連接的目標被生成。

5、運行automake
命令:
 

  1. $ automake --add-missing  
  2. configure.in: installing `./install-sh'  
  3. configure.in: installing `./mkinstalldirs'  
  4. configure.in: installing `./missing'  
  5. Makefile.am: installing `./depcomp'  


automake會根據Makefile.am文件產生一些文件,包含最重要的Makefile.in。

6、執行configure生成Makefile
 

  1. $ ./configure   
  2. checking for a BSD-compatible install... /usr/bin/install -c  
  3. checking whether build environment is sane... yes  
  4. checking for gawk... gawk  
  5. checking whether make sets $(MAKE)... yes  
  6. checking for gcc... gcc  
  7. checking for C compiler default output... a.out  
  8. checking whether the C compiler works... yes  
  9. checking whether we are cross compiling... no  
  10. checking for suffix of executables...   
  11. checking for suffix of object files... o  
  12. checking whether we are using the GNU C compiler... yes  
  13. checking whether gcc accepts -g... yes  
  14. checking for gcc option to accept ANSI C... none needed  
  15. checking for style of include used by make... GNU  
  16. checking dependency style of gcc... gcc3  
  17. configure: creating ./config.status  
  18. config.status: creating Makefile  
  19. config.status: executing depfiles commands  
  20. $ ls -l Makefile  
  21. -rw-rw-r-- 1 yutao yutao 15035 Oct 15 10:40 Makefile   

你可以看到,此時Makefile已經產生出來了。

7、使用Makefile編譯代碼
 

  1. $ make  
  2. if gcc -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION="" -   
  3. DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DPACKAGE="helloworld" -DVERSION="1.0"   
  4. -I. -I. -g -O2 -MT helloworld.o -MD -MP -MF ".deps/helloworld.Tpo" \  
  5. -c -o helloworld.o `test -f 'helloworld.c' || echo './'`helloworld.c; \  
  6. then mv -f ".deps/helloworld.Tpo" ".deps/helloworld.Po"; \  
  7. else rm -f ".deps/helloworld.Tpo"; exit 1; \  
  8. fi  
  9. gcc -g -O2 -o helloworld helloworld.o  
  10. 運行helloworld   
  11. $ ./helloworld   
  12. Hello, Linux World!  


這樣helloworld就編譯出來了,你如果按上面的步驟來做的話,應該也會很容易地編譯出正確的helloworld文件。你還可以試著使用一些其他的make命令,如make clean,make install,make dist,看看它們會給你什么樣的效果。感覺如何?自己也能寫出這么專業的Makefile,老板一定會對你刮目相看。

【編輯推薦】

  1. Autoconf使用關于autoconf安裝條件介紹 
  2. Autoconf使用生成Makefile的方法及其規則
  3. autoconf安裝關于可移植的源代碼詳解
  4. Autoconf教程關于UNIX文件系統概述
  5. Autoconf教程關于安全管理介紹

 

責任編輯:chenqingxiang 來源: 互聯網
相關推薦

2017-09-12 09:22:51

LinuxMakefileautoconf工具

2010-06-22 17:09:52

Linux Autom

2010-06-22 23:52:42

Automake使用

2010-03-01 09:57:55

Linux Makef

2010-06-22 15:45:06

Autoconf使用

2010-06-22 17:45:34

Linux Autom

2010-06-22 22:50:40

Automake使用

2009-10-26 13:45:39

linux Makef

2009-12-14 10:47:34

Linux makef

2009-10-26 11:34:42

linux makef

2010-02-25 17:49:36

Linux Makef

2016-10-18 11:16:42

評估選擇軟件

2010-06-13 15:26:42

2010-05-27 12:52:42

Linux流量監控軟件

2017-06-06 14:44:37

2010-06-18 16:35:54

Linux amidi

2010-06-22 15:40:54

Autoconf使用

2009-08-10 11:12:06

2010-01-05 15:26:04

Linux軟件

2010-05-28 14:34:17

Linux開發工具
點贊
收藏

51CTO技術棧公眾號

精品国产乱码久久久久久浪潮| 国产精品毛片a∨一区二区三区| 欧美国产日韩免费| 男生裸体视频网站| 国产一区二区主播在线| 亚洲天堂2016| 麻豆亚洲一区| 国产成人精品一区二区无码呦| 99成人精品| 日韩在线免费观看视频| 高清中文字幕mv的电影| 日韩精选视频| 亚洲国产成人精品视频| 午夜精品一区二区三区四区| 亚洲av无码乱码国产麻豆| 免费日韩一区二区| 欧美丰满少妇xxxx| 亚洲一二三精品| 精品深夜福利视频| 欧美丰满美乳xxx高潮www| 国产极品在线视频| 尤物视频在线看| 久久久久高清精品| 国产精品区一区| 在线观看国产精品视频| 久久精品动漫| 久久久久久久久久久网站| 刘亦菲国产毛片bd| 免费成人av| 亚洲第一男人天堂| 中文写幕一区二区三区免费观成熟| 唐人社导航福利精品| 亚洲成人av一区二区| 国产精品久久久影院| 日韩美女网站| 久久蜜桃av一区二区天堂| 亚洲最大av在线| 一区二区三区亚洲视频| 免费观看在线色综合| 日产日韩在线亚洲欧美| www.国产高清| 亚洲国产高清视频| 欧美丰满少妇xxxxx| 一区二区三区影视| 99热精品久久| 日韩中文字幕在线看| 69精品无码成人久久久久久| 四虎5151久久欧美毛片| 亚洲精品国产精品国自产在线 | 日韩av手机在线免费观看| 国产日产一区| 一区二区三区视频观看| 受虐m奴xxx在线观看| 亚洲警察之高压线| 亚洲精选中文字幕| 男女黄床上色视频| 综合亚洲色图| 中文在线不卡视频| 懂色av粉嫩av蜜臀av一区二区三区| 欧美日韩老妇| 亚洲一区二区久久| 日本午夜精品视频| 97人人精品| 九九久久精品一区| 精品在线视频免费| 久久狠狠一本精品综合网| 国产精品99久久久久久www| 久久久蜜桃一区二区| 日韩电影一区二区三区四区| 国产精品视频久| 国产三级理论片| 久久97超碰色| 国产精品视频福利| 飘雪影视在线观看免费观看 | 免费黄网站欧美| 91久久中文字幕| www香蕉视频| 9l国产精品久久久久麻豆| 久中文字幕一区| jizzjizz在线观看| 亚洲精品老司机| 黄色影院一级片| 日韩制服诱惑| 日韩午夜在线影院| 激情综合丁香五月| 99久久精品网| 97久久精品人人澡人人爽缅北| 九九精品免费视频| 久草中文综合在线| 精品国产乱码久久久久久蜜柚| 国产一区二区影视| 亚洲美女在线国产| 国产99久久九九精品无码| 欧美视频精品| 亚洲激情在线观看| jizz日本在线播放| 亚洲三级观看| 91精品视频免费| 色综合成人av| 亚洲精选免费视频| 亚洲中文字幕久久精品无码喷水| 91麻豆精品一二三区在线| 精品在线小视频| 欧美日韩在线观看免费| 久久精品人人做人人爽电影蜜月| 91欧美日韩一区| 九一在线视频| 亚洲综合999| 日本激情综合网| 久久中文资源| 欧美麻豆久久久久久中文 | 日韩一卡二卡三卡国产欧美| 97伦伦午夜电影理伦片| 国产精品v一区二区三区 | 国产精品久久久久av蜜臀| 尤物yw午夜国产精品视频| 国产成人精品亚洲男人的天堂| 老鸭窝一区二区久久精品| 久久99久久精品国产| 中文字幕中文字幕在线十八区| 色就色 综合激情| 亚洲色图欧美另类| 亚洲精品一区二区妖精| 国产精品久久久久久av| 日本五码在线| 午夜视频一区二区| 日本少妇xxx| 国产精品二区不卡| 国产精品久久久久久亚洲调教| 婷婷婷国产在线视频| 亚洲网友自拍偷拍| 人妻激情偷乱视频一区二区三区| 色中色综合网| 国产精品欧美亚洲777777| 欧美18xxxxx| 欧美日韩一区二区三区在线免费观看| 一二三区视频在线观看| 欧美一区二区| 18成人免费观看网站下载| 麻豆视频在线观看免费网站| 欧美日韩一区二区三区视频| 国产一级久久久久毛片精品| 男女精品视频| 人禽交欧美网站免费| 在线视频超级| 亚洲精品之草原avav久久| 日干夜干天天干| 成人aa视频在线观看| bt天堂新版中文在线地址| 中文一区二区三区四区| 欧美激情久久久| 俄罗斯嫩小性bbwbbw| 一区二区欧美精品| 日韩黄色一区二区| 亚洲国产欧美国产综合一区| 国产女人水真多18毛片18精品| caoporn免费在线| 日韩精品在线看片z| 久久免费小视频| 不卡视频在线观看| 成年人黄色片视频| 成人3d精品动漫精品一二三| 国产精品色视频| 瑟瑟视频在线| 日韩视频国产视频| 国产精品99精品| 久久毛片高清国产| 亚洲天堂2018av| 欧美在线观看天堂一区二区三区| 成人免费在线看片| 日韩av影片| 国产亚洲美女精品久久久| 在线视频播放大全| 一区二区成人在线| 强伦人妻一区二区三区| 精品一区二区三区视频| 久青草视频在线播放| 欧美天堂影院| 国产精品久久久久久久久久| 国产日产一区二区| 亚洲国产精品中文| 中文字幕日本人妻久久久免费| 亚洲日本va在线观看| 国产精品嫩草av| 麻豆精品视频在线观看视频| 国产片侵犯亲女视频播放| 亚洲伊人春色| 亚洲一区二区三区xxx视频| 国产激情视频在线看| 最近2019免费中文字幕视频三| 丰满岳乱妇国产精品一区| 色94色欧美sute亚洲线路一ni| 黑人狂躁日本娇小| 99精品欧美一区| www.五月天色| 小嫩嫩精品导航| 中文字幕在线中文| 欧美一区二区三区激情视频| 成人一区二区三区四区| av在线日韩| 韩剧1988在线观看免费完整版| caoporn国产精品免费视频| 欧美精品一区男女天堂| 曰批又黄又爽免费视频| 精品久久中文字幕| www.av视频| 国产精品嫩草99a| 国产老熟女伦老熟妇露脸| 国产在线不卡一卡二卡三卡四卡| 动漫av网站免费观看| 欧美国产日本| 在线精品日韩| 伊人久久大香线蕉综合网蜜芽 | 欧美a级网站| 96国产粉嫩美女| 午夜无码国产理论在线| 97热精品视频官网| 最新黄网在线观看| 最近2019中文免费高清视频观看www99| 欧美特级特黄aaaaaa在线看| 在线综合视频播放| 欧美激情一区二区三区免费观看| 午夜精品久久久久久| 欧美日韩在线视频免费| 亚洲欧洲国产日韩| www.99热| 久久久久久夜精品精品免费| 色综合久久五月| 国产91精品露脸国语对白| 亚洲美女性囗交| 免费成人av资源网| 蜜臀av免费观看| 日韩电影在线一区| 欧美精品第三页| 午夜一级在线看亚洲| 精品欧美一区免费观看α√| 欧美在线网站| 国产精品啪啪啪视频| 综合激情婷婷| 成人黄色片免费| 欧美日韩亚洲一区二区三区在线| 做爰高潮hd色即是空| 999精品在线| 在线视频一区观看| 99久久国产综合精品成人影院| 综合久久国产| 中文字幕一区二区三区在线视频 | 麻豆成人精品| 日日摸天天爽天天爽视频| 性色av一区二区怡红| 成年网站在线免费观看| 三级一区在线视频先锋| 国产福利影院在线观看| 久久国产精品无码网站| 热久久久久久久久| 国产精品亚洲а∨天堂免在线| 超级砰砰砰97免费观看最新一期 | 91桃色在线观看| 97精品在线视频| 欧美91看片特黄aaaa| 国产精品美女呻吟| 国产一区二区久久久久| 不卡视频一区二区三区| 精品综合久久88少妇激情| 精品一卡二卡三卡四卡日本乱码| 日韩av不卡一区| 天天久久人人| 欧美一区国产在线| 免费在线观看亚洲视频| 日本特黄久久久高潮| 手机看片国产精品| 91网站黄www| 天堂av网手机版| 一区二区成人在线| 一级片免费在线播放| 欧美日韩黄色一区二区| 亚洲成人中文字幕在线| 亚洲剧情一区二区| 毛片在线视频| 国内伊人久久久久久网站视频 | 精品免费国产| 不卡中文字幕| 国产在线视频在线| 水野朝阳av一区二区三区| 成人av毛片在线观看| 波多野洁衣一区| 日本高清黄色片| 亚洲一区二区三区在线| 日日夜夜狠狠操| 日韩西西人体444www| 久热av在线| 欧美日韩国产二区| 一二区成人影院电影网| av成人观看| 国产欧美日韩| 女人被男人躁得好爽免费视频 | 午夜久久久久久电影| 中文字幕乱码一区二区| 亚洲成年人影院在线| 日本在线免费| 国产91精品在线播放| 999在线精品| 亚洲制服中文| 久久精品毛片| 捆绑凌虐一区二区三区| 亚洲日本在线天堂| 天天综合久久综合| 亚洲国产天堂久久综合| gogo在线观看| 国产精品视频男人的天堂| 欧美顶级毛片在线播放| 最近免费观看高清韩国日本大全| 视频一区二区三区入口| 男男做爰猛烈叫床爽爽小说| 亚洲美女视频一区| 一级二级三级视频| 亚洲系列中文字幕| 亚洲人成午夜免电影费观看| 成人高清在线观看| 亚洲成人国产| 亚洲一区二区三区观看| 欧美高清在线一区二区| 国产三级av片| 亚洲精品国产精品国自产在线 | 久久久久久久久久久久久久久久久久 | 91在线观看喷潮| 亚洲欧美综合另类中字| 国产美女高潮在线观看| 国产在线视频欧美一区二区三区| 欧美ab在线视频| 国模大尺度视频| 玉足女爽爽91| 丰满人妻一区二区三区四区53| 欧美成人sm免费视频| 国产一区二区三区免费在线| 樱花www成人免费视频| 蜜臀a∨国产成人精品| 国产三级黄色片| 欧美美女直播网站| 欧美jizzhd欧美| 成人午夜高潮视频| 欧美一区综合| 国产免费a级片| 午夜精品久久久久影视| 日日夜夜精品免费| 97人人做人人爱| 亚洲成aⅴ人片久久青草影院| 男女激情无遮挡| 91免费视频大全| 波多野结衣不卡| 尤物yw午夜国产精品视频| 日韩一区二区三免费高清在线观看| 亚洲一区二区三区精品在线观看| 美女在线一区二区| 成人免费毛片xxx| 精品欧美久久久| 色黄视频在线观看| 日本在线免费观看一区| 麻豆精品视频在线观看视频| 国产稀缺精品盗摄盗拍| 日韩精品一区二区三区swag | 国产精品aaa| 久久综合国产| 四虎1515hh.com| 天天综合网天天综合色| 久久免费看视频| 91精品久久久久久久久| 午夜亚洲福利| 老鸭窝一区二区| 欧美无砖砖区免费| 91小视频xxxx网站在线| 精品国产综合区久久久久久| 日日夜夜免费精品| 精品人妻伦九区久久aaa片| 精品国产污污免费网站入口 | 黄网站在线播放| 国产精品久久精品视| 久久久亚洲人| 老熟妇高潮一区二区三区| 欧美精品一区二区久久久| 台湾佬成人网| 成年人视频大全| 久久色.com| 国产av一区二区三区| 欧美尤物巨大精品爽| 久久精品影视| 人妻体内射精一区二区| 欧美一区二区三区免费视频| 国产精选在线| 国产福利片一区二区| 97se狠狠狠综合亚洲狠狠| 最近中文字幕在线观看视频| 欧美黑人性生活视频| 精品国产一区二区三区久久久樱花 | 欧美色欧美亚洲另类七区| 国产一区二区福利视频| 久久久久久久久久成人| 欧美高清在线观看| 清纯唯美综合亚洲| 黄色性生活一级片|