精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美亚洲国产日韩| 高清毛片在线看| 韩国一区二区三区在线观看| 亚洲精品一区二区精华| 国产网站免费在线观看| 国产天堂在线| 国产精品一区二区免费不卡| 久久久伊人欧美| 精品无码在线观看| 99ri日韩精品视频| 精品视频1区2区| 激情小视频网站| 你懂的视频在线观看| 国产一区在线观看麻豆| 7777免费精品视频| 日本妇女毛茸茸| 深爱激情综合| 亚洲成人久久一区| 亚洲一区二区三区观看| 手机在线理论片| 亚洲激情自拍视频| 日本一区二区三区视频在线观看| 精品人妻一区二区三区麻豆91 | 国产福利91精品一区| 日本国产欧美一区二区三区| a级片在线观看免费| 欧美手机在线| 日韩成人av在线| gogo亚洲国模私拍人体| 黄色欧美视频| 在线观看日韩电影| 黄色免费观看视频网站| 亚洲男同gay网站| 国产精品护士白丝一区av| 久久免费一区| 欧美一级视频在线观看| 中文字幕在线观看第三页| eeuss鲁一区二区三区| 亚洲欧美一区二区在线观看| 日韩欧美亚洲日产国| 欧美一级淫片aaaaaa| 国产麻豆91精品| 91精品视频在线播放| 国产男人搡女人免费视频| 国产欧美大片| 欧美一区二区三区免费观看| 国产精品成人av久久| 欧美黄色免费| 欧美老女人xx| 国产suv一区二区三区| 日韩在线视屏| 精品国模在线视频| 女同久久另类69精品国产| 欧美色就是色| 中文字幕久热精品视频在线| 最近中文字幕免费视频| 美女毛片一区二区三区四区最新中文字幕亚洲| 精品少妇一区二区三区在线播放| 成人三级做爰av| 午夜视频一区二区在线观看| 日韩一级高清毛片| 欧美一级大片免费看| 日韩欧美中文字幕在线视频| 欧美成人精品二区三区99精品| 1314成人网| jizz性欧美23| 亚洲嫩模很污视频| 怡红院一区二区三区| 青青草国产免费一区二区下载| 一区国产精品视频| 91av手机在线| 欧美搞黄网站| 国模精品系列视频| 国产精品一区二区6| 麻豆成人在线| 国产精品无码专区在线观看| 97视频久久久| 妺妺窝人体色www在线下载| 欧美精品日本| 欧美一级淫片videoshd| 男人天堂视频网| 久久av资源网| 国产精品日韩高清| 男女污视频在线观看| 国产精品伦理在线| 真人做人试看60分钟免费| 高清精品在线| 欧美日韩国产三级| 国产精品久久久久久亚洲色| 欧美**vk| 久久中文字幕在线视频| 久久网免费视频| 久久久夜精品| 91文字幕巨乱亚洲香蕉| 三级av在线播放| 国产精品国产馆在线真实露脸 | 免费黄色a级片| 亚洲综合小说图片| 久久躁狠狠躁夜夜爽| 国产黄色片免费看| 极品美女销魂一区二区三区免费| 国产精品一区二区三区在线观| 国产有码在线| 亚洲一区二区三区四区五区中文| 北条麻妃在线观看| 视频一区日韩| 在线视频亚洲欧美| 欧美激情亚洲综合| 国产乱码精品一区二区三区忘忧草| 久久国产精品-国产精品| 色多多视频在线观看| 午夜精品福利一区二区蜜股av| 日本特黄a级片| 婷婷亚洲精品| 色综合视频一区中文字幕| 成年人晚上看的视频| 懂色av一区二区三区免费观看| 日韩高清三级| 国产免费拔擦拔擦8x在线播放| 欧美精品在线观看一区二区| 一本色道综合久久欧美日韩精品| 亚洲精品久久| 国产精品久久久久久久久久ktv| 人妻无码中文字幕| 亚洲老司机在线| 五月天av在线播放| 视频一区中文| 欧美性资源免费| 人妻少妇一区二区三区| 亚洲老妇xxxxxx| 天美一区二区三区| 99久久综合狠狠综合久久aⅴ| 日本老师69xxx| 无码国产精品高潮久久99| 亚洲激情第一区| 免费成人黄色大片| 欧美激情黄色片| 国产精品一区二区三区成人| 国产福利小视频在线| 色网站国产精品| 国产呦小j女精品视频| 亚洲精选久久| 精品久久精品久久| 久久久男人天堂| 亚洲高清一区二| 日本熟妇成熟毛茸茸| 暴力调教一区二区三区| 无码人妻精品一区二区蜜桃百度| 色综合久久久| 久久精品一偷一偷国产| 91九色蝌蚪91por成人| 国产精品入口麻豆九色| 在线观看免费视频高清游戏推荐 | 色乱码一区二区三区熟女| 韩日精品一区| 中文字幕视频在线免费欧美日韩综合在线看| 你懂的国产在线| 久久精品一区二区三区不卡 | av高清一区| 伊人久久综合97精品| 国产精品国产精品国产| 国产精品免费视频观看| 污网站在线免费| 中文在线播放一区二区| 国产精品久久一区二区三区| 丁香高清在线观看完整电影视频| 亚洲高清久久网| 中文字幕在线播| 中文字幕亚洲电影| 久久久久99人妻一区二区三区| 国内精品亚洲| 麻豆传媒一区| 四虎地址8848精品| 欧美国产第一页| 日韩精品视频无播放器在线看 | 国产国语videosex另类| 高清福利在线观看| 欧美一级黄色大片| 中文字幕亚洲高清| 国产精品女主播在线观看| 国内av免费观看| 日韩亚洲国产欧美| 亚洲电影免费| 91久久精品无嫩草影院 | 欧美特黄aaaaaa| 国产精品久久一卡二卡| 在线播放第一页| 日韩一区精品字幕| 青青草视频在线视频| 色综合综合色| av一区二区在线看| 91精品xxx在线观看| 欧美成人午夜剧场免费观看| 午夜福利理论片在线观看| 欧美日韩国产免费一区二区| 欧美成人精品欧美一级| 久久久久久久精| 中文字幕在线观看视频www| 亚洲综合国产| 中国黄色录像片| 亚洲婷婷伊人| 91成人免费在线观看| 日韩电影免费观| 欧美精品videossex性护士| 国产精品视频一区二区久久| 日韩欧美在线网站| 波多野结衣二区三区| 亚洲国产日韩一区二区| 天天干天天操天天拍| 99麻豆久久久国产精品免费优播| 久久国产精品国产精品| 亚洲美女黄色| 三级在线免费观看| 成人vr资源| 久久久久网址| 成人av激情人伦小说| 成人写真福利网| 亚洲一区资源| 久久全球大尺度高清视频| 在线免费观看黄色av| 亚洲男人天堂2019| 亚欧在线观看视频| 欧美成人a∨高清免费观看| 一区二区精品视频在线观看| 色综合中文字幕国产| 在线看成人av| 亚洲一区二区三区中文字幕| 色欲一区二区三区精品a片| 国产人妖乱国产精品人妖| 噜噜噜在线视频| 波多野结衣视频一区| 亚洲级视频在线观看免费1级| 日本中文字幕有码| 国精品**一区二区三区在线蜜桃| av丝袜天堂网| 三级在线观看一区二区| 干日本少妇首页| 中文精品在线| 熟女少妇在线视频播放| 亚洲国内自拍| 日本中文字幕网址| 亚洲精品一二| 免费国产黄色网址| 欧美亚洲一区二区三区| 少妇人妻在线视频| 9色精品在线| 免费看的黄色大片| 在线亚洲观看| 成年人免费大片| 首页国产欧美久久| 亚洲欧美在线精品| 国内精品免费在线观看| 三级黄色片免费看| 国产伦精一区二区三区| 制服.丝袜.亚洲.中文.综合懂| 国产乱码精品1区2区3区| 91丨porny丨九色| 成人午夜精品一区二区三区| 中文字幕第3页| 久久久噜噜噜久久人人看 | 亚洲色图第一区| 久久久精品视频在线| 亚洲午夜av在线| 欧美日韩精品区| 色婷婷综合久久久| 在线免费观看一区二区| 欧美一级在线视频| 手机在线精品视频| 国产香蕉97碰碰久久人人| porn亚洲| 色综合久久88色综合天天看泰| 青青操免费在线视频| 日韩国产欧美一区二区| 一区二区三区四区五区精品| 在线国产一区二区| 国产素人在线观看| 日av在线不卡| 国产成人精品综合久久久久99 | 好看的日韩精品| 久久91成人| 精品日韩在线播放| 亚洲一区二区三区高清| 蜜桃免费在线视频| 国产91富婆露脸刺激对白| 在线免费观看黄色小视频| 国产精品色在线| 国产精品2020| 欧美三级电影网站| 理论片中文字幕| 色妞一区二区三区| av免费不卡国产观看| 国产精品日日摸夜夜添夜夜av| 日韩区欧美区| 色就是色欧美| 激情久久五月| 欧美日韩一区二区三区69堂| 成人午夜在线免费| 阿v天堂2014| 一区二区三区精品视频在线| 天天射天天干天天| 亚洲成人久久网| 成视频免费观看在线看| 国产91色在线|| 成人性生交大片免费看中文视频| 日韩精品另类天天更新| 激情另类综合| 欧洲美女亚洲激情| 久久久不卡影院| 国产精品不卡av| 日韩一区二区三区三四区视频在线观看| 亚州av在线播放| 久久久久国产视频| 99视频这里有精品| 欧美日韩在线一二三| 99精品福利视频| 亚洲国产综合av| 国产精品国产三级国产aⅴ中文 | 久久精品黄色片| 欧美性xxxxx极品少妇| 人妻视频一区二区三区| 欧美成人国产va精品日本一级| 成人日韩在线观看| 蜜桃网站成人| 国产一区白浆| 国产精品一区二区人妻喷水| 亚洲乱码中文字幕| 国产欧美日韩成人| 色黄久久久久久| 日韩av综合在线观看| 久久亚洲风情| 欧洲一级黄色片| 亚洲成人精品一区| 丰满少妇在线观看bd| 久久中文字幕国产| 高清不卡一区| 18视频在线观看娇喘| 国内外成人在线视频| 青花影视在线观看免费高清| 欧美日韩一级黄| av资源在线观看免费高清| 国产成人精品在线| 极品美女一区二区三区| 国产成人精品视频ⅴa片软件竹菊| www.爱久久.com| 日韩精品视频免费播放| 亚洲精品国产欧美| 高端美女服务在线视频播放| 精品亚洲一区二区三区四区五区高| 精品动漫3d一区二区三区免费| 免费黄色在线播放| 亚洲电影一级黄| 完全免费av在线播放| 中文字幕一区在线观看视频| 午夜一级黄色片| 精品国内亚洲在观看18黄| 欧美日本三级| 亚洲国产成人精品无码区99| av一区二区三区黑人| 韩国av中文字幕| 国产亚洲欧美另类中文| 欧美jizz18| 女人色极品影院| av福利精品导航| 精人妻无码一区二区三区| 最近免费中文字幕视频2019| 日韩电影精品| 久久这里只有精品18| 99精品欧美一区二区蜜桃免费 | 两个人看的在线视频www| 欧美三级电影在线播放| 六月丁香综合在线视频| 激情五月婷婷小说| 日韩成人久久久| 国产精品伦一区二区| 日韩人妻一区二区三区蜜桃视频| 国产盗摄女厕一区二区三区| 欧美bbbbbbbbbbbb精品| 一本一道久久a久久精品逆3p| 欧美亚洲福利| 妞干网在线视频观看| 久久久久久久免费视频了| 一区不卡在线观看| 91国产视频在线| 日本精品黄色| 精品人妻在线视频| 在线观看亚洲专区| 欧美人动性xxxxz0oz| 欧美精品v日韩精品v国产精品| 久久精品国产精品亚洲红杏| 日本少妇毛茸茸高潮| 中文字幕亚洲无线码在线一区| 91嫩草精品| jizzzz日本| 欧美日韩国产激情| 免费黄色在线观看| 蜜桃av噜噜一区二区三区| 国内精品第一页| 极品国产91在线网站| 色噜噜久久综合| 女尊高h男高潮呻吟|