autotools入门.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
autotools入门

autotools 入门 授人于鱼不如授人于渔 推荐阅读: autobook autoconf手册 automake手册 基本上到这儿,就该结束了。剩下的 就不保证绝对正确了。 autotools的作用: 1. 使代码可移植 代码可移植不是自动的,代码自身必须保证其在任意平台可以运行。autotools只是 告诉,这个平台什么可以用,什么不可以用。 2. 使安装分发很容易 # ./configure # make # make install 这个最初是gnu的规范,后来变成了开源的规范。 3. 看起来很专业的样子 专业,至少从看起来专业开始。但是切记,估计只有跑在虚拟机上的代码(例如 perl),和精通各个平台的人,才能写出真正可移植的代码。 我对可移植的理解: 作为公司内部项目,不必追求可移植,在linux平台运行,(只要能)就应该榨干 linux提供的每一份特性。 # info autoreconf `autoreconf runs `autoconf, `autoheader, `aclocal, `automake,`libtoolize, and `autopoint (when appropriate) repeatedly to update the GNU Build System in the specified directories and their subdirectories (*note Subdirectories::). By default, it only remakes those files that are older than their sources. autotools 通常说的是autoconf,automake, autolib,但是还有很多辅助的工具,包括 autoheader,aclocal,autoscan。 这些工具的关系: autoconf 根据configure.in(configure.ac)生成configure。 automake 根据 Makefile.am 生成Makefile.in。 autotools 是解决各个平台对.a,.so 的处理不一致的,我不懂这个,今天就不说 了。 这些都是开发者要做的。 使用者运行 ./configure 时发生的事情: configure 检测平台特性,生成config.h,config.h 定义了很多宏,这些宏标识了平 台特性,例如:#define HAVE_MEMSET 1;说明该平台提供了memset函数;根据 Makefile.in,生成相应平台的Makefile,不同的平台,Makefile规则不同。 上面所的平台特性,其实不准确,准确的说法是,检查特性。configure不会检查这个 系统是Linux还是FreeBSD,它只检查某个函数是否得到支持。 注意:autoconf 并不依赖automake,NB的开发者可以手动写Makefile.in,例如apache 就没有Makefile.am;configure 只是一个普通的脚本,NB的开发者可以手动写 configure(只要它能完成上述功能),例如nginx的作者。 作为不NB的开发者,我们要完成configure.in文件和Makefile.am文件的编写。下面 主要讲解着两个文件。 目录结构如下: 0 ls aclocal.m4 config.h.in configure.in jobqueue.cpp Makefile.am mysqlqueue.cpp config configure jobclient.pl lib Makefile.in mysqlqueue.hpp 0 ls ./lib conffile.cpp conffile.hpp gc.hpp Makefile.am Makefile.in pidfile.hpp 主程序文件在顶层目录,子目录lib下存放库文件。 可以看到configure.in 文件, Makefile.am Makefile.in文件,lib/Makefile.am,l

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档