- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Automake,Autoconf生成Makefile
?
使用Automake,Autoconf生成Makefile
在Unix 上写过程序的人尤其是用 C 来开发程序的人一般都遇到过 Makefile,用 make 来开发和编译程序的确很方便,可是要写出一个Makefile就不那么简单了。GNU Make 那份几百页的文件,让许多人害怕。当然,现在关于make的文档比较多,不过写一个Makefile总是一件很烦人的事情,GNU Autoconf 及 Automake 这两个软件就是帮助程序开发者轻松产生Makefile 文件的。现在的GNU软件如Apache, MySQL Minigui等都是利用Autoconf,Automake实现自动编译的。用户只要使用 “./configure”, “make”, “make install” 就可以把程序安裝到系统中。
简介
Makefile 基本上就是『目标』(target), 『关联』(dependencies) 和『动作』三者所组成的一系列规则。而 make 就是根据 Makefile 的规则决定如何编译 (compile) 和连接 (link) 程序或者其它动作。当然,make 可做的不只是编译和连接程序,例如 FreeBSD 的 port collection 中,Makefile还可以做到自动下载远程程序,解压缩 (extract) , 打补丁 (patch),设定,然后编译,安装到系统中。Makefile 基本结构虽然很简单,但是妥善运用这些规则就可以变换出许多不同的花样。却也因为这样,许多人刚开始学写Makefile 时会觉得没有规范可以遵循,每个人写出来的Makefile都不大一样,不知道从哪里下手,而且常常会受到开发环境的限制,只要环境参数不同或者路径更 改,可能 Makefile 就得跟着修改。虽然有GNU Makefile Conventions (GNU Makefile惯例)制订出一些在进行 GNU 程序设计时写 Makefile 的一些标准和规范,但是其内容很长而且很复杂,并且经常作一些调整,为了减轻程序开发人员维护Makefile 的负担,就出现了Automake。利 用Automake,编程者只需要写一些预先定义好的宏 (macro),提交给Automake处理,就会产生一个可以供 Autoconf 使用的 Makefile.in文件。再配合使用 Autoconf产生的自动配置文件 configure 即可产生一份符合 GNU Makefile 惯例的 Makeifle 了。
需要的软件
在开始使用 Automake 之前,首先确认你的系统安装有如下软件:1. GNU Automake2. GNU Autoconf3. GNU m44. perl5. GNU Libtool (如果你需要产生 shared library)最好也使用 GNU C/C++ 编译器 、GNU Make 以及其它 GNU 的工具程序来作为开发的环境,这些工具都是属于 Open Source Software 不但免费而且功能强大。如果你是使用 Red Hat?Linux?可以找到所有上述软件的 rpm 文件。
一个简单的例子
Automake 所产生的 Makefile 除了可以做到程序的编译和连接,也可以用来生成文档(如 manual page, info 文件等),还可以有把源码文件包装起来以供发布,所以程序源代码所存放的目录结构最好符合GNU 的标准惯例,接下来就用一个hello.c 來做为例子。在工作?目录下建立一个新的子目录devel,再在 devel 下建立一个hello 的子目录,这个目录将作为存放 hello这个程序及其相关文件的地方:% mkdir devel;cd devel;mkdir hello;cd hello用编辑器写一个hello.c文件,
#include stdio.h
int main(int argc, char** argv)
{
printf(“Hello, GNU!n”);
return 0;
} 接下来就要用 Autoconf 及 Automake 來产生 Makefile 文件了,1. 用 autoscan 产生一个 configure.in 的原型,执行autoscan 后会产生一个configure.scan 的文件,可以用它作为 configure.in文件的蓝本。 % autoscan???? % ls???? configure.scan hello.c2. 编辑 configure.scan文件,如下所示,並且改名为co
您可能关注的文档
- 2011乡镇人大主席工作汇报).doc
- 2012(上)电子商务论文答辩通知).doc
- 2012-2013学年NEO街舞社述职材料).ppt
- 2012湖北省高考随州广水一中预测卷答案).doc
- 2012年度共性目标管理工作总结).doc
- 2012年共青团长春市委工作安排).doc
- 2012全自动压载水系统word).doc
- 2012智能开关插座项目招商).ppt
- 2013春集中业务学习内容).doc
- 2013年公需科目考试题).doc
- 2024年05月黑龙江双鸭山饶河县事业单位面向社会公开引进高学历人才10人笔试上岸历年高频考点(难、易错点)附带答案详解.docx
- 2024年05月黑龙江鸡西市营商环境建设监督局招考聘用笔试上岸历年高频考点(难、易错点)附带答案详解.docx
- 2024年06月安徽马鞍山含山县选任人民陪审员120人笔试上岸历年高频考点(难、易错点)附带答案详解.docx
- 2024年2月上海交通大学医学院附属上海儿童医学中心招考聘用100人笔试上岸历年高频考点(难、易错点)附带答案详解.docx
- 2024年06月春季奥体中心公开招聘笔试上岸历年高频考点(难、易错点)附带答案详解.docx
- 2024年06月中国农业电影电视中心公开招聘应届毕业生拟录用人选笔试上岸历年高频考点(难、易错点)附带答案详解.docx
- 公路工程监理工程师经济系列(公路工程经济)模拟练习试卷16.pdf
- 公路工程监理工程师经济系列(公路工程经济)模拟练习试卷8.pdf
- 设备工程进度管理方法练习试卷1.pdf
- 环境影响评价师(环境影响评价技术方法)模拟试卷74.pdf
文档评论(0)