- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
运用Autoconf和Automake生成Makefile的学习之路一、?相关概念的介绍什么是Makefile?怎么书写Makefile?竟然有工具可以自动生成Makefile?怎么生成啊?开始的时候,我有这么多疑问,所以,必须得先把基本的概念搞个清楚。?1.?Makefile makefile用来定义整个工程的编译规则。一个工程中的源文件计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。?2.?Autoconf Autoconf是一个用于生成可以自动地配置软件源代码包以适应多种Unix类系统的 shell脚本的工具。由Autoconf生成的配置脚本在运行的时候与Autoconf是无关的, 就是说配置脚本的用户并不需要拥有Autoconf。 对于每个使用了Autoconf的软件包,Autoconf从一个列举了该软件包需要的,或者可以使用的系统特征的列表的模板文件中生成配置脚本。在shell代码识别并响应了一个被列出的系统特征之后,Autoconf允许多个可能使用(或者需要)该特征的软件包共享该特征。 如果后来因为某些原因需要调整shell代码,就只要在一个地方进行修改; 所有的配置脚本都将被自动地重新生成以使用更新了的代码。?3.?Automake Automake是一个从文件`Makefile.am自动生成`Makefile.in 的工具。每个`Makefile.am基本上是一系列make的宏定义 (make规则也会偶尔出现)。生成的`Makefile.in服从GNU Makefile标准。GNU Makefile标准文档长、复杂,而且会发生改变。Automake的目的就是解除个人GNU维护者维护Makefile的负担 (并且让Automake的维护者来承担这个负担)。典型的Automake输入文件是一系列简单的宏定义。处理所有这样的文件以创建 `Makefile.in。在一个项目(project)的每个目录中通常包含一个 `Makefile.am。Automake在几个方面对一个项目做了限制;例如它假定项目使用Autoconf并且对`configure.in的内容施加了某些限制。 Automake支持三种目录层次: “flat”、“shallow”和“deep”。一个flat(平)包指的是所有文件都在一个目录中的包。为这类包提供的`Makefile.am 缺少宏SUBDIRS。这类包的一个例子是termutils。一个deep(深)包指的是所有的源代码都被储存在子目录中的包;顶层 目录主要包含配置信息。GNU cpio 是这类包的一个很好的例子,GNU tar也是。deep包的顶层`Makefile.am将包括 宏SUBDIRS,但没有其它定义需要创建的对象的宏。一个shallow(浅)包指的是主要的源代码储存在顶层目录中,而 各个部分(典型的是库)则储存在子目录中的包。Automake本身就是这类包(GNU make也是如此,它现在已经不使用automake)。?下面,就以这三种目录层次结构给大家介绍二、?Flat目录结构:1.?目录结构:Helloworld|-mytest.h|-mytest.c|-mymain.c 顶级目录helloworld,该目录下存在三个文件。mytest.h头文件声明了sayhello()方法;mytest.c中实现了sayhello()方法;mymain.c中的main调用了sayhello()方法。2.?执行步骤:2.1. Autoscan ?在helloworld目录下执行autoscan命令,其中生成一个configure.scan的文件。2.2. 将configure.scan文件更名为configure.in文件2.3. 打开configure.in文件,修改文件内容 1 # -*- Autoconf -*- 2 # Process this file with autoconf to produc
您可能关注的文档
最近下载
- 日照市基本医疗保险政策与经办业务知识考试题库2025 .pdf VIP
- 小学英语教学评一体化策略与实践.pptx VIP
- 中小学英语教学评一体化的理论与实践.pptx VIP
- 管理沟通——原理、策略及应用(第三版)课件全套 赵洱岽 第1--14章 管理沟通概论---数字化时代的沟通.pptx
- 小学英语教学评一体化的实践探究.pptx VIP
- 小学英语教学中“教—学—评”一体化教学策略运用.pptx VIP
- 北师大版六年级上册数学《百分数的认识》(课件)(共17张PPT).pptx VIP
- 2025村委换届考试题及答案.docx VIP
- 2024《小红书运动户外行业白皮书》.docx
- 推荐浙江省土建安全技术资料台帐(十二本).doc VIP
文档评论(0)