makefile 的创建及源码组织的体会
(个人见解,如有错误,恳请大家指出)
1:makefile中的依赖与源码中的“依赖”是二回事,互不相干。makefile中的依赖只说明是否更新的问题。
2:本人喜欢把makefile中的依赖与源码组织对应起来,因为这样看makefile就可以看出源码组织。
3:makefile中,如果希望目标在某些依赖文件更新后更新,一定要明确指出该依赖文件 源码中的头文件等的嵌套对make来说是透明的。比如,一个公共头文件 common.h, 另一个头文件ping.h,如果在ping.h中包含common.h, 然后在源文件ping.c中包含ping.h.
makefile如下:
ping.o: ping.c ping.h
gcc -Wall -c ping.c
当只有common.h更新时,ping.o并不会更新,因为它只依赖于ping.h与ping.c, 它并不依赖于common.h, 虽然ping.h中包含了common.h.所以如果希望目标在某些依赖文件更新后更新,一定要明确指出该依赖文件源码中的头文件等的嵌套对make来说是透明的。
建议源文件组织成:头文件不要嵌套, 然后在ping.c中包含common.h与ping.h,注意common.h要写在ping.h上边,因为ping.h可能要用到common.h中的定义。
阅读(639) | 评论(0) | 转发(0) |