使用Make 程序来建立大型项目的流水线处理

ZDNet软件频道 时间:2003-07-02 作者:翻译:javaresearch.org-Abel_Cao |  我要评论()
本文关键词:cpptips
如果你现在依赖于批处理文件或者脚本来编译代码,而且项目正随着建立次数的增加而变大,你就可能使用到make程序。make程序可以对建立大型项目进行流水线处理,并且只重新编译已经改变的文件。
本文译自Builder.com,未经许可请勿转载如果你现在依赖于批处理文件或者脚本来编译代码,而且项目正随着建立次数的增加而变大,你就可能使用到make程序。make程序可以对建立大型项目进行流水线处理,并且只重新编译已经改变的文件。

另外,如果你依赖于IDE开发工具来生成代码,实际上make程序是隐藏在开发工具之中的。理解它使你能够更好地控制建立过程。

make程序以难于使用著称,其实是针对非常大的项目而言的。不用害怕,其实他没有你想象得那么复杂。

从简单开始

make程序的基本操作很简单:make程序读取通常叫做makefile的文本文件,该文件包含了怎样使用命令生成目标程序的一系列规则。下面是makefile 中一个规则的一般性:

target: dependents
    commands

  • Targets是建立过程所生成的文件---例如,连接器产生的最终可执行二进制代码或者由编译器及汇编语言解释器产生的中间目标文件。
  • Dependents是指建立目标所需要的文件。例如,最终可执行二进制代码所依赖的所有目标文件,目标文件所依赖的单个源文件或头文件。
  • Commands是指声称一个目标所需要的指令或程序。

下面是一个非常简单的例子(使用了 Microsoft C 编译器工具). 这个makefile 意思是从单个援文件中生成可执行文件。注意最终可执行的程序是makefile 中的第一个目标。

main.exe: main.obj
    link /OUT:main.exe main.obj

main.obj: main.c
    cl -c main.c

当make 运行时,它分析所有目标和所依赖文件的关系,检查文件时间戳的不同,并执行为了生成最终可执行程序所需要的最小命令集合。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134