【1】生成Makefile文件全過程
整體流程如下圖:
注意:以下文件根目錄為testmake(任意位置新建即可)
(1)測試程序
1.1 建立兩個目錄:mkdir include source
1.2 編輯sum.h文件
#cd include
#vim sum.h
內容如下:
#include <stdio.h> int sum(int a, int b);
1.3 編輯sum.c文件
#cd source
#vim sum.c
內容如下:
#include "sum.h" int sum(int a, int b) { printf("\n----PRINT ARGS A: ----\n%d\n", a); printf("\n----PRINT ARGS B: ----\n%d\n", b); return (a + b); } int main(int argc , char **argv) { int a = 0, b = 0; printf("Please INPUT ARGS A and B end by [ENTER]\n"); scanf("%d%d", &a, &b); int value = sum(a, b); printf("Execute SUM result: \n%d\n", value); return 0; }
(2)autoscan
首先,執行autoscan命令,會生成autoscan.log 和 configure.scan兩個文件,如下圖:
然后,重命名並修改configure.scan文件
cp configure.scan configure.ac
修改內容詳見注釋部分:
# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.63]) # 修改點[1] # AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) # 修改后: # FULL-PACKAGE-NAME 為程序名稱,VERSION為當前版本, BUG-REPORT-ADDRESS為bug匯報地址 AC_INIT(sum, 1.0.1, kaizen@163.com) # 修改點[2] 增加一行如下: AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([source/sum.c]) #AC_CONFIG_HEADERS([config.h]) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. # 修改點[3] 增加一行如下: AC_CONFIG_FILES([Makefile]) AC_OUTPUT
如上
(3)aclocal
利用configure.ac文件,執行命令aclocal,會生成aclocal.m4 和 autom4te.cache兩個文件,如下圖:
重要的是aclocal.m4文件
(4)autoconf
利用aclocal.m4文件,執行命令autoconf,會生成configure文件,如下圖:
(5)編寫Makefile.am文件
內容如下:
#Makefile.am bin_PROGRAMS = sum sum_SOURCES = include/sum.h source/sum.c sum_CPPFLAGS = -I include/
注意:sum為程序命名
如果將sum更改為demo,那么下面兩個參數的前綴也需要對應更新,示例:
demo_SOURCES
demo_CPPFLAGS
(6)automake
首先,明確automake必需文件(9個)為:
install-sh
missing
INSTALL
NEWS
README
AUTHORS
ChangeLog
COPYING
depcomp
其中,命令automake -a會自動生成以下(5個)文件:
install-sh
missing
INSTALL
COPYING
depcomp
如下圖:
然后,其他(4個)文件手動生成,命令:
touch NEWS README AUTHORS ChangeLog
如下圖:
以上准備就緒。最后再執行automake命令,會生成Makefile.in文件,如下圖:
(7)./configure
configure命令,利用configure和Makefile.in文件,生成Makefile文件。
(8)make
此時已經生成了sum(可執行文件名字在前面編寫Makefile.am的參數時確定)這個,可以通過./sum直接看到運行結果。
如下圖:
不過linux系統中一般這里都會再做一步,把它安裝到系統里面,這樣我們只要在終端輸入sum就可以運行程序。
(9)make install
OK。現在直接可以在終端運行程序。如下圖:
Good Good Study, Day Day Up.
順序 選擇 循環 總結