Linux下Makefile的automake生成全攻略.pdf
上传人:qw****27 上传时间:2024-09-11 格式:PDF 页数:9 大小:127KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Linux下Makefile的automake生成全攻略.pdf

Linux下Makefile的automake生成全攻略.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux下Makefile的automake生成全攻略作为Linux下的程序开发人员,一定都遇到过Makefile,用make命令来编译自己写的程序确。一实是,大般情家都Makefile,如很方况下果要是手便想写工写出一一个个符简单合自由Makefile就软件.不那惯例么容的易了在本文中,将介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软Makefile,这件惯GNU样就程,只“./configure例的序一”,“要使make”,可以样用象常见的“makeinstal”就Linux可以系统中把程去了序安。这装到将特别适合想做开放源代码软件的,又程序或如Toy程序,那开发么这果你人员个文只是章对自己你也写些会有小的很大的帮助。一、Makefile介绍Makefile是用于,一个工,每自动一个程有编译文件很多和链的改文件接的变都组成会导,但致工是不,Makefile中程的,纪录是所重新有文有的链接件的文件信息都需要重新编译在make时会决定在链接的时候需要重新编译哪些文件。Makefile的:让宗旨编译。当就是器知那些道要编译一个文件需要依赖其他的哪些文件依,编赖文译器,而件有。重新会自了改编译动的变相应发现的模最终块的生成文件已经过时Makefile的,基本但当一Makefile时,经结构常会个程不是怀序开很复发人杂员开始写疑自己写的是否符合惯例,而且自己写的Makefile经常和自己的开发环境相关联,当系统环境变,Makefile可。这能还量或写Makefil样就e要跟路径造成着修发生了手改了变工书化后的automake恰诸多好能问题很好,地帮助我们解决这些问题。使用automake,程序开发人员只需要写一些简单的含有预定义宏的文件,由autoconf根据一个宏文件生成configure,由automake根据另一个宏文件生成Makefile.in,再使用configure依据Makefile.in来生成一个符合惯例的Makefile。下面我们将详细介绍Makefile的automake生成方法。二、使用的环境本文所Linux发:FedoraCorerelease行版1,它提到包含本的程了我序是们要基于用到的autoconf,automake。三helloworld入手、从我们从helloworld开始。大家最常使用的例子程序下面的过程如果简单地说来就是:新建三个文件:helloworld.cconfigure.inMakefile.am然后执行:aclocal;autoconf;automake--add-missing;./configure;make;./helloworld就可以看到Makefile被产生出来,而且可以将helloworld.c编译通过。很简单吧,几条命令就可以做出一个符合惯例的Makefile,感觉如何呀。现在开始介绍详细的过程:1、建目录在你的工作目录下建一个helloworld目录,我们用它来存放helloworld程序及相关文件,如在/home/my/build下:$mkdirhelloword$cdhelloworld2、helloworld.c然后用你自己最喜欢的编辑器写一个hellowrold.c文件,如命令:vihelloworld.c。使用下面的代码作为helloworld.c的内容。intmain(intargc,char**argv){printf("Hello,LinuxWorld!");return0;}完成后保存退出。现在在helloworld目录下就应该有一个你自己写的helloworld.c了。3、生成configure我们使用autoscan命令来帮助我们根据目录下的源代码生成一个configure.in的模板文件。命令:$autoscan$lsconfigure.scanhelloworld.c执行后在hellowrold目录下会生成一个文件:configure.scan,我们可以拿它作为configure.in的蓝本。现在将configure.scan改名为configure.in,并且编辑它,按下面的内容修改,去掉无关的语句:============================configure.in内容开始=========================================#-*-Autoconf-*-#Processthisfilewithautoconftoproduceaconfigurescript.