automake編譯.c文件最終總結

http://blog.csdn.net/xiaogugood/article/details/38657341
http://blog.csdn.net/dengzhilong_cpp/article/details/7486791
使用automake自動生成makefile的過程主要有八個步驟:
1、建立好源文件以後放到源文件所在目錄
2、執行autoscan命令生成configure.scan和autoscan.log,將configure.scan文件修改爲configure.in,然後修改configure.in文件中的內容:
默認:AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
修改成:AC_INIT([main], [1.0], [[email protected]])
加入:AC_CONFIG_HEADERS([config.h])後面添加一行AM_INIT_AUTOMAKE(main,1.0)
最後一行:AC_OUTPUT([Makefile])
3、運行aclocal,生成一個“aclocal.m4”文件和一個緩衝文件夾autom4te.cache,該文件主要處理本地的宏定義.
4、運行autoconf,目的是生成 configure 文件
5、運行autoheader生成文件config.h.in
6、創建Makefile.am文件,內容爲:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=main 定義要產生的執行文件名。如果要產生多個執行文件,每個文件名用空格隔開
main_SOURCES=main.c 定義main所需源文件,多個可執行文件分別定義

 這個執行程序所需要的原始文件。如果”main”這個程序是由多個原始文件所產生的,則必須把它所用到的所有原 始文件都列出來,並用空格隔開。例如:若目標體“main”需要“main.c”、“sunq.c”、“main.h”三個依賴文件,則定義 main_SOURCES=main.c sunq.c main.h。要注意的是,如果要定義多個執行文件,則對每個執行程序都要定義相應的file_SOURCES。
 *******************
 automake要用的腳本配置文件是Makefile.am,用戶需要自己創建相應的文件。之後,automake工具轉換成Makefile.in。

7、運行automake –add-missing生產makefile.in文件
8、運行./configure:通過運行自動配置設置文件configure,把Makefile.in變成了最終的Makefile。
9、運行make
在第六步中需要自己寫Makefile.am文件,特別是其中的main_SOURCES需要把生成main所以來的文件都包含進來。並且那些間接依賴的文件也需要包含進來。比如說我有三個文件:main.cpp Add.cpp Add.h Num.h Num.cpp其中在main.cpp中包含了Add.h 在Add.cpp中包含了Num.h這樣在完成main的依賴文件時就需要包含以上所有的問個文件main.cpp Add.cpp Add.h Num.h Num.cpp纔可以。

發佈了95 篇原創文章 · 獲贊 13 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章