Makefile基础教程

Makefile基础教程

ID:37712248

大小:37.23 KB

页数:20页

时间:2019-05-29

Makefile基础教程_第1页
Makefile基础教程_第2页
Makefile基础教程_第3页
Makefile基础教程_第4页
Makefile基础教程_第5页
资源描述:

《Makefile基础教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Makefile基础教程  Make程序最初设计是为了维护C程序文件防止不必要的重新编译。在使用命令行编译器的时候,修改了一个工程中的头文件,如何确保包含这个头文件的所有文件都得到编译?现在10机的版本生成是使用批处理程序,编译那些文件依赖于程序的维护者,在模块之间相互引用头文件的情况下,要将所有需要重新编译的文件找出来是一件痛苦的事情;在找到这些文件之后,修改批处理进行编译。实际上这些工作可以让make程序来自动完成,make工具对于维护一些具有相互依赖关系的文件特别有用,它对文件和命令的联系(在文件改变时调用来更新其它文件的程序)提供一套编码方法。Make工具的基本概念类似于P

2、roglog语言,你告诉make需要做什么,提供一些规则,make来完成剩下的工作。1简介make工作自动确定工程的哪部分需要重新编译,执行命令去编译它们。虽然make多用于C程序,然而只要提供命令行的编译器,你可以将其用于任何语言。实际上,make工具的应用范围不仅于编程,你可以描述任和一些文件改变需要自动更新另一些文件的任务来使用它。1.1准备工作如果要使用make,你必须写一个叫做“makefile”的文件,这个文件描述工程中文件之间的关系,提供更新每个文件的命令。典型的工程是这样的:可执行文件靠目标文件来更新,目标文件靠编译源文件来更新。Makefile写好之后,每次更改了

3、源文件后,只要执行make就足够了,所有必要的重新编译将执行。Make程序利用makefile中的数据库和文件的最后修改时间来确定那个文件需要更新;对于需要更新的文件,make执行数据库中记录的命令。可以提供命令行参数给make来控制那个文件需要重新编译。1.2Makefile介绍Makefile文件告诉make做什么,多数情况是怎样编译和链接一个程序。这里有一个简单的makefile,描述如何编译链接由8个C文件和3个头文件组成的一个编辑器:edit:main.okbd.ocommand.odisplay.o    insert.oserach.ofiles.outils.oc

4、c–oeditmain.okbd.ocommand.odisplay.o      insert.osearch.ofiles.outils.omain.o:main.cdefs.hcc–cmain.ckdb.o:kbd.cdefs.hcommand.hcc–ckbd.ccommand.o:command.cdefs.hcommand.hcc-ccommand.cdisplay.o:display.cdefs.hbuffer.hcc-cdisplay.cinsert.o:insert.cdefs.hbuffer.hcc-cinsert.csearch.o:search.cdefs

5、.hbuffer.hcc-csearch.cfiles.o:files.cdefs.hbuffer.hcommand.hcc-cfiles.cutils.o:utils.cdefs.hcc-cutils.cclean:rmeditmain.okbd.ocommand.odisplay.o          insert.osearch.ofiles.outils.o将长行用分开便于阅读,这和使用一个长行的作用是一样的。使用这个makefile创建可执行文件“edit”时运行make就可以了;如果要将可执行文件和目标文件删除,执行makecleanmake重新编译这个编辑器时,每

6、个更改的C文件必须重新编译;如果头文件更改了,每个包含头文件的C文件必须重新编译;每次编译产生一个对应于原文件的目标文件。最终,目标文件链接在一起产生新的可执行文件。1.3规则简介makefile中的规则是这样的:TARGET…  :DEPENDENCIES…COMMAND…目标(TARGET)程序产生的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如“clean”。依赖(DEPENDENCIES)是用来产生目标的输入文件,一个目标通常依赖于多个文件。命令(COMMAND)是make执行的动作,一个可以有多个命令,每个占一行。注意:每个命令行的起始字符必须为TAB字符!有

7、依赖关系规则中的命令通常在依赖文件变化时负责产生target文件,make执行这些命令更新或产生target。规则可以没有依赖关系,如包含target“clean”的规则。规则解释如何和何时重做该规则中的文件,make根据依赖关系执行产生或更新目标;规则也说明如何和何时执行动作。有的规则看起来很复杂,但都符合上述模式。1.4make工作原理缺省make从第一个target开始(第一个非’.’开始的target),这称作缺省目标。在上述的makefile中,缺省目标是更

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。