- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linu实用编程技术.doc
Linux实用编程技术 Makefile文件深入浅出
引言
作为Linux下的程序开发人员,大家一定都遇到过MakeHle,用make命令來编译Ll d写的程序确实是 很方便。
一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Linux Makefile编译就不那么容易了。
本打将介绍介绍如何使用autoconf和automake W个丁.具(W套软件)米帮助我们ft动地生成符含內 由软件惯例的Linux Makefile编译,这样就可以象常见的GNU程序一样,只要使用“./configure”, “make”,“make instal”就可以把程序安装到Linux系统中去了。
二、准备工作
在开始之前,请先确认用户系统己经安裝我们耍用到的au t ocon f,au t omake。
三、从helloworld入手
我们从大家最常使用的例子程序helloworld开始。下面的过程如果简单地说来就是:新建三个文件:
1、 helloworld.c
2、 configure.in
3、 Miikefile.am
然后执行:aclocal; autoconf; automake —add-missing; ./configure; make; ./helloworld 就可以看到 Linux Makefile编译被产生出来,而且可以将heHoworkl.c编译通过。很简单吧,儿条命令就可以做出一个符合惯 例的Linux Makefile编译,感觉如何呀。现在开始介绍详细的过程:
第一步:建目录。
在你的工作目录下迷一个helloworld目录,我们用它来存放helloworld程序及相关文件,如在 /home/my/build T:
1、 $ mkdir hclloword
2、 $ cd helloworld
第二步:创建 helloworld.c
用你自己最喜欢的编辑器写一个hellowrold.c文件,如命令:vi helloworld.c。使用下而的代码作为 helloworld.c 的内容。
int main(int arge, char** argv)
{
printf(Hello, Linux World!\n); return 0;
}
完成后保存退出。现在在helloworld H铁I、就应该有一个你己写的heHoworld.c /。
第三步:生成configure
我们使W autoscan命令來帮助我们。根据目录下的源代码生成一个configure, in的模板文件。命令:
1、$ autoscan
2、$ls
configure.scan helloworld.c
执行后在hellowrold t~l茨卜会生成一个文件:configure.scan,我们町以拿它作为configure.in的蓝木。 现在将configure.scan改名为configure.in,并且编辑它,按卜面的内容修改,去掉兄关的语切:
========configure. in 内容开始=====================
# 一*一 Autoconf 一*一
# Process this file with autoconf to produce a configure script.
AC_INIT(helloworld. c)
AM_INIT_AUTOMAKE(helloworId, 1.0)
# Checks for programs.
AC_PR0G_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT(Makefile)
===========configure. in 内容结束=================
然后执行命令aclocal和autoconf,分别会产生aclocal. md及configure两个文件:
$ aclocal
$ls
aclocal. m4 configure, in helloworld. c
$ autoconf
$ Is
aclocal. m4 autom4te. cache configure configure, in helloworld. c
大家以看到configure, in闪容是一幽宏定义,这驻宏经autoconf处理后会变成检查系统特性、环 境变觉、软件必须的参数的shell脚本。autoconf足川來成自动配软件源代码脚木(configure)的 工具。co
文档评论(0)