最近写程序的时候,用Makefile来进行编译。对于小型的程序来讲,手动去写不是特别麻烦的事情。
但是对于大量程序的编译来讲,手动去写Makefile简直是一件非常令人头痛的事情了。上网查了查,可以利用automake来生成Makefile,这样以来就省了非常多的时间。
在试着使用automake的时候,当然也遇到了一些小麻烦。现在在这里将自己试用automake的整个过程写在这里,方便自己以后翻阅也利于初学者借鉴。
请先确认你的系统已经安装以下的软件
1.GNU Automake
2.GNU Autoconf
3.GNU m4
4.perl
5.GNU Libtool(如果你需要产生sharedlibrary)
对你写好的程序,比如说hello.c
运行,autoscan,这样会生成一个configure.scan文件。编辑这个文件,在
AC_INIT(hello.c) 这个宏后面添加宏 AM_INIT_AUTOMAKE(hello, 1.0) 这里定义生成文件名为hello,版本为1.0.然后补全最后的AC_OUTPUT,为 AC_OUTPUT(Makefile)
保存,并修改configure.scan 为 configure.in
执行aclocal生成
aclocal.m4
执行autoconf,生成configure,这就是最后用来./configure的文件了。但是要生成一个Makefile,还需要手动写一个Makefile.am文件
bin_PROGRAMS=hello 最生输出的可执行文件名,输出多个则用空格隔开即可
hello_SOURCES=hello.c 依赖的源文件,有多个源文件用空格隔开,有头文件也写出来。
include_HEADERS 引用的头文件
hello_LDADD 链接时要的额外函数库名
这是一些Makefile.am的一些常用项:
执行autoheaders,automake --add-missing
ls以下,你就会看到:
aclocal.m4 config.h.in configure.in~ hello.c Makefile.am
autom4te.cache configure COPYING INSTALL Makefile.in
autoscan.log configure.in depcomp install-sh missing
现在执行./configure,你就会看到生成了Makefile ,通过 make就可以实现编译了
阅读(315) | 评论(0) | 转发(0) |