自学GCC-自动生成Makefile–autotools使用

最近想学习下UNIX下的编程。如是乎就有了以下的教程,在使用以下教程之前,需要确保linux已经安装了gcc、automake、autoconf、m4、perl。随便找一个目录,例如/var/lazy/gcc,touch一个文件,文件名hello.c,文件内容如下:

#include <stdio.h>
int main(void)
{
   printf("hello lazy");
   return 0;
}

下面就需要开始编译了。
第一步:autoscan,此步骤需要执行两次

[root@localhost gcc]# autoscan

第二步:

[root@localhost gcc]#mv configure.scan configure.ac
[root@localhost gcc]#vim configure.ac

此时将文件 configure.ac的内容稍作修改,其中最重要的就是
AC_INIT(lazy, 1.0, leak@hfut.edu.cn)
这一行是声明软件的名称,版本,bug报告的email换成你的,最后改成
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
保存。
第三步:
aclocal,autoconf,autoheader

[root@localhost gcc]# aclocal
[root@localhost gcc]#autoconf
[root@localhost gcc]#autoheader

第四步:
手工创建Makefile.am
文件的内容为:

UTOMAKE_OPTIONS = foreign
bin_PROGRAMS = hello
hello_SOURCES = hello.c

第五步:
反复使用 automake –add-missing
出现

Makefile.am: required file `./NEWS' not found
Makefile.am: required file `./README' not found
Makefile.am: required file `./AUTHORS' not found
Makefile.am: required file `./ChangeLog' not found

把以上的文件都补上
touch NEWS
touch README
touch AUTHORS
touch ChangeLog
第六步:

[root@localhost gcc]./confiure
....
[root@localhost gcc]make

此时运行”./hello”就能看到运行结果:
hello lazy了

打包
tar -zcvf /root/hello.tar.gz ./

参考文章可见: