先做一个简单的测试工程描述,其目录和文件结构如下所述:工程的最高层目录test中有一个hello.c文件和lib、include两个子目录。在lib目录中有一个print.c文件,在include目录中有一个print.h文件。
(1)为该工程编写automake的输入配置脚本Makefile.am,configure.ac
(2)使用GnuAutotools工具为该工程创建Makefile文件,并编译该工程。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.Test4文件夹初始状态如下:
其中写好的hello.c print.h print.c 如下
2.安装autoconf等一系列工具
3.运行autoscan命令,来根据目录下的源代码先生成一个configure.in 的“模板文件”。
4.将configure.scan 改名为configure.in ,并且编辑它。并且按需要修改添加成如下:
5.分别执行aclocal 和 autoconf 命令,分别生成aclocal.m4 文件和configure文件
6.新建一个文件Makefile.am(用gedit 或vi等工具),内容如下
7.autoheader命令生成config.h.in,config.h.in用来帮助autoconf生成config.h,config.h给程序使用
//其实第6,7 个步骤应该换过来也行。
8.根据上面的Makefile.Am运行automake 来生成我们想要的Makefile.in
有一些必需的脚本文件,如“install-sh”、“missing”等,可以从automake软件包里复制过来,只需在执行时使用“--add-missing”选项即可。
看,可爱的Makefile.in 就生成了
9. 在终端中输入“./configure”并回车执行,就是执行第5步生成的configure配置脚本,该脚本根据第7步生成的config.h.in和第8步生成的Makefile.in的内容来生成Makefile文件。
到此,即生成了我们比较熟悉的Makefile文件,因为假如工程小的话,完全可以自己编写Makefile文件,无需用这之前的一连串的autotools的工具自动生成Makefile,如下
有了Makefile就能编译代码了
10. 利用make 命令即可生成目标程序。
利用make install命令,安装程序到本机器上。
make clean清理之前便已生成的可执行文件及目标文件。
利用 make dist命令,可将程序和相关文档打包为一个 tar.gz的文件,便于发布。再另外的机器上解压,利用configure ,make,make install三部曲即可完成安装。
执行编译出来的hello 可执行程序
-,-过程实在是多,相信记录下来,以后会用的着的。
本文详细介绍了一个简单的测试工程如何通过Automake和Autoconf等工具自动生成Makefile文件的过程,包括配置脚本Makefile.am和configure.ac的编写,以及利用一系列GnuAutotools工具进行编译和安装。
11万+

被折叠的 条评论
为什么被折叠?



