查看完整版本: 跟我一起写 Makefile.pdf

simon2068 2008-4-15 16:50

跟我一起写 Makefile.pdf

Makefile 介绍
make 命令执行时,需要一个Makefile 文件,以告诉make 命令需要怎么样的去编译和链接
程序。
首先,我们用一个示例来说明Makefile 的书写规则。以便给大家一个感兴认识。这个示例
来源于GNU 的make 使用手册,在这个示例中,我们的工程有8 个C 文件,和3 个头文件,
我们要写一个Makefile 来告诉make 命令如何编译和链接这几个文件。我们的规则是:
1)如果这个工程没有编译过,那么我们的所有C 文件都要编译并被链接。
2)如果这个工程的某几个C 文件被修改,那么我们只编译被修改的C 文件,并链接目
标程序。
3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C 文件,
并链接目标程序。
只要我们的Makefile 写得够好,所有的这一切,我们只用一个make 命令就可以完成,make
命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所
需要的文件和链接目标程序。
一、Makefile 的规则
在讲述这个Makefile 之前,还是让我们先来粗略地看一看Makefile 的规则。
target ... : prerequisites ...
command
...
...
target 也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个
标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。
prerequisites 就是,要生成那个target 所需要的文件或是目标。
command 也就是make 需要执行的命令。(任意的Shell 命令)
这是一个文件的依赖关系, 也就是说, target 这一个或多个的目标文件依赖于
prerequisites 中的文件,其生成规则定义在command 中。说白一点就是说,prerequisites
中如果有一个以上的文件比target 文件要新的话,command 所定义的命令就会被执行。这
就是Makefile 的规则。也就是Makefile 中最核心的内容。
说到底,Makefile 的东西就是这样一点,好像我的这篇文档也该结束了。呵呵。还不尽然,
这是Makefile 的主线和核心,但要写好一个Makefile 还不够,我会以后面一点一点地结合
我的工作经验给你慢慢到来。内容还多着呢。:)

among 2008-4-15 21:39

我记得我最初学cc的时候,领导要我学cc的build这一块儿。
因为他们不会cc的build,要我学了教他们。
要学cc的build,学习makefile是必不可少的。
这是我当时学习时看过的一篇好文。
推荐。加精。

helen_bj 2008-4-17 17:24

赫赫,不知道我找到的是否是出处。。。

[url]http://www.chinaunix.net/jh/23/408225.html[/url]

pengpeng_py 2008-4-17 21:22

恩,我下载看了,确实是这个。
makefile,以前听别人讲过。但是还不知道怎么学?

yuningzhang 2008-4-19 17:23

没怎么用过这个。看来得好好学习学习啊

CMStruggling 2008-5-9 19:19

[quote]原帖由 [i]helen_bj[/i] 于 2008-4-17 17:24 发表 [url=http://bbs.scmlife.com/redirect.php?goto=findpost&pid=86029&ptid=11877][img]http://bbs.scmlife.com/images/common/back.gif[/img][/url]
赫赫,不知道我找到的是否是出处。。。

[url]http://www.chinaunix.net/jh/23/408225.html[/url] [/quote]
貌似和楼主的一样哦,
很不错的文章,
可以好好学习下了!!
::em34::

oshine 2008-6-4 03:52

这本已经有了,谢谢!

winzheng 2008-6-4 09:20

不错,刚接触到,需要花功夫学习

fengxinzi2008 2008-6-12 23:03

下了,还没看

看完再来和大家探讨。
页: [1]
查看完整版本: 跟我一起写 Makefile.pdf