对于一个UNIX/Linux下C程序员来说,一个比较麻烦的工作就是写自己的Makefile。可能你有如下经验:写一个简单的C程序,自己多写几行gcc命令就把程序变成可执行的了;写一个稍微复杂点的程序,源文件个数可能在30个左右,还是写一行行的gcc命令就麻烦了,你可能想到写个makefile,你可能也在这样做着;但你某一天会发现你写的这个Makefile可能不是一个所有 UNIX/Linux类操作系统下通用的Makefile,比如某人下载了你的程序去他自己电脑上可能make不了。
这样,你就有必要了解并学会运用autoconf和automake了。
先简单介绍一下这两个工具:
不罗嗦了,进入正题~ 在本文中,我将结合最近的实践经历以及遇到的问题,给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux系统中去了。
* 在开始使用autoconf和automake之前,首先确认你的系统安装有GNU的如下软件:
* 介绍方法之前,大家先记下autoconf和automake工作的几个步骤,步骤解释如下: 1、由你的源文件通过autoscanf命令生成configure.scan文件,然后修改 configure.scan文件并重命名为configure.in 注:很重要! 如果这里紧接着直接进行第4步: automake --add-missing:后会出现错误:configure.in:8:required file `./config.h.in' not found 紧接着./configure后会出现 config.status: error: cannot find input file: config.h 解决办法:在automake --add-missing之前执行autoheader就ok了,一般网上的资料 很少有人提到这一步,大家也都是转来转去,所有会导致错误的发生。
Makefile.in文件
实战:我的源程序结构如下:总共两个目录:viaencode/ 、videolib/,
5、执行autoheader,前面已讲过。 6、编辑一个Makefile.am文件,已有,文件内容如下:
运用autoconf和automake的最大好处是,你的程序以源程序方式发布后,其它所有人只需要依次输入./configure ,make,make install命令就可以把你的程序安装在自己的电脑上运行了。所有符合GNU标准的UNIX/Linux都不需要再修改Makefile里的任何字符。 总的来说,程序开发人员只需要写一些简单的含有预定义宏的文件,由autoconf根据一个宏文件生 |
|
来自: 败败0619 > 《Linux/Ubuntu》