首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

makefile 的规则疑问,请问

2012-07-04 
makefile 的规则疑问,请教。[size18px]我最近在看《GNU Linux 编程指南》,在其中的第四章makefile中,有个小

makefile 的规则疑问,请教。
[size=18px]我最近在看《GNU Linux 编程指南》,在其中的第四章makefile中,有个小小疑问:

总共3个文件:
helper.h
helper.c

howdy.c 中包含了helper.h头文件,就这样。

按理说,写makefile的时候只需要:

C/C++ code
howdy: howdy.o helper.o       gcc howdy.o helper.o -o howdyhowdy.o: howdy.c       gcc -c howdy.chelper.o:helper.h helper.c       gcc -c helper.cclean:       rm howdy *.o

就可以了,而且我运行也没问题。

但是,为什么书上在第一句的依赖项,非得要加上一个 helper.h呢?
howdy: howdy.o helper.o helper.h
 这没必要吧。我后面在设定helper.o 的时候不是已经包含了helper.h吗?[/size]

[解决办法]
makefile好多都可以省略的,书上的是比较正规的,随着深入你就知道了
[解决办法]
书上的东西也不是100%正确的,当然你自己运行过的才是正确的。呵呵
理论上都是.o文件了,已经到链接的阶段了,应该是不需要.h文件了。
[解决办法]
howdy: howdy.o helper.o helper.h

这个不影响编译
只是明确表示一个依赖关系:howdy执行程序依赖于helper.h
这样helper.h改动后,直接make就能更新howdy


如果没有这儿的这个helper.h,那么helper.h更新后,执行make,将会提示“没有什么可以编译的”

热点排行