使用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编译,运行程序

还能够将代码打包发布:

   

     这些命令功能强大,不少参数的意思这里没列出来,能够查阅相关书籍和手册。本文旨在展现整个过程,和最经常使用到的参数。之后写程序特别是文件较多时是否是方便了不少?

相关文章
相关标签/搜索