autotools入门笔记(一)
GNU autotools作用:收集系統配置信息并自動生成Makefile文件。
GNU autotools主要包括三個工具:autoconf、automake、libtool,還有很多輔助的工具,包括:autoheader、aclocal、autoscan。
● autoscan檢測源文件生成configure.scan;
●?autoconf根據configure.in(或者configure.ac)生成configure;
●?automake根據Makefile.am 生成Makefile.in。
這幾個工具及中間生成的文件的關系圖如圖1所示:
?
圖1
Ubuntu下安裝:
sudo apt-get install autoconf
sudo apt-get install automake
?
下面以test工程為例,工程跟目錄為test,只有一個源文件main.c。構建的主要步驟如下,其中最主要的步驟是(2)和(6):
(1)運行autoscan檢測源文件生成configure.scan,將其修改成configure.in
(2)編輯configure.in
? ? ? ? ? a.修改AC_INIT(FULL-PACKAGE-NAME,VERSION, BUG-REPORT-ADDRESS),FULL-PACKAGE-NAME為程序名稱,VERSION為當前版本,BUG-REPORT-ADDRESS為bug匯報地址。例如:AC_INIT(main,0.0.1, test@test.com);
? ? ? ? ??b. 隨后增加一行:AM_INIT_AUTOMAKE(test, 0.0.1);
? ? ? ? ??c. 在AC_OUTPUT前增加一行:AC_CONFIG_FILES([Makefile])
? ? ? ? ??(文件configure.in完整內容如圖2所示)
圖2
(3)運行aclocal生成aclocal.m4
(4)運行autoconf生成configure腳本
(5)運行autoheader生成config.h.in文件
(6)創建并編輯Makefile.am
?????? AUTOMAKE_OPTIONS=foreign
?????? #automake提供了三種軟件等級:foreign、gnu和gnits,默認等級為gnu,(會檢測NEWS、README、AUTHORS和ChangeLog文件)。
?????? #在本例使用foreign等級,它只檢測必須的文件。
? ? ? ?bin_PROGRAMS=main
?????? #定義要產生的可執行文件名,如果要產生多個執行文件,每個文件名用空格隔開。
? ? ? ?main_SOURCES=main.c
? ? ? ?#指定用來生成目標的源文件列表
? ? ? (文件Makefile.am完整內容如圖3所示)
圖3
(7)運行automake --add-missing生成makefile.in
(8)運行configure腳本生成Makefile
至此,構建完畢,運行make命令可以完成編譯過程生成可執行文件main。
?
轉載于:https://www.cnblogs.com/snake-hand/p/3149531.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的autotools入门笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3D游戏调研
- 下一篇: MySQL Cluster 4个数据节点