使用automake等命令自動生成Makefile文件 (轉載)

使用automake等命令自動生成Makefile文件 html

  Linux下編程時,爲了方便編譯,每每使用Makefile文件自動完成編譯,可是Makefile文件自己的書寫十分複雜,規則不少。好在Linux爲咱們提供了自動生成功能完善的Makefile文件的工具autoconf/automake。本文講述如何使用它們生成Makefile文件。要用到的工具組主要包括autoconf,automake,perl語言環境和m4。 編程

  能夠使用命令rpm -qa | grep command_name查看它們的信息,在Ubuntu下看了,默認卻沒裝,因此在Redhat AS 6.5 X86_64下弄了。 工具

  查看的示例以下: spa

      整個工具組的工做流程以下圖: 3d

       

     下面以實例演示如何使用automake等生成Makefile文件。 htm

1  寫一個簡單的程序,本例寫了個簡單的計算斐波那契數的程序,有三個文件組成:main.c,fib.c,fib.h,代碼以下: blog

 main.c get

1 #include<stdio.h>
2 #include"fib.h"
3  int main()
4 {
5 int n=0;
6 printf("input n=\n");
7 scanf("%d",&n);
8 printf("fib(%d=%d\n",n,fib(n));
9
10 return 0;
11 }
input

fib.h 工作流

int fib(int n);

fib.c

1 #include"fib.h"
2  int fib(int n)
3 {
4 if(n==0)
5 return 0;
6 if(n==1||n==2)
7 return 1;
8 return fib(n-1)+fib(n-2);
9 }

使用ls命令查看以下:

2  使用autoscan生成configure.scan文件,將其重命名爲configure.ac,並作適當修改。以下:

 

configure.scan內容以下:

修改configure.ac內容以下:

AC_INIT()中分別應填程序的名字,版本,和做者的聯繫方式(通常是Email)

添加一行AM_INIT_AUTOMAKE(),參數添程序名字,版本號

最後AC_OUTPUT()生成的文件。

3  使用aclocal工具生成aclocal.m4

4  使用autoconf工具生成configure文件

5  使用autoheader使用config.h.in文件

6  用vi生成一個空文件Makefile.am, 並編輯以下三項。

第一項:軟件等級,有三個候選項:foreign,gnu,gnits

第二項:生成的可執行文件名

第三項:生成可執行文件所需的原始文件,有多個文件時用空格隔開,如本例

7  使用automake生成Makefile.in文件,內容以下:

8  運行configure配置生成最終的Makefile文件

 

9  使用Makefile編譯,運行程序

還能夠將代碼打包發佈:

   

     這些命令功能強大,不少參數的意思這裏沒列出來,能夠查閱相關書籍和手冊。本文旨在展現整個過程,和最經常使用到的參數。之後寫程序特別是文件較多時是否是方便了不少?

相關文章
相關標籤/搜索