生成Makefile文件全過程


【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.

順序 選擇 循環 總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM