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

有关Makefiel的有关问题

2012-04-09 
有关Makefiel的问题有个问题困扰着我好久了!在写Makefile的时候,生成点O文件后的依赖文件一定都要写吗?特

有关Makefiel的问题

有个问题困扰着我好久了!

在写Makefile的时候,生成点O文件后的依赖文件一定都要写吗?特别是头文件(自己写的头文件)都要列表出来吗?

如果我的头文件中还引用了另外一个头文件呢?又怎么写?

如:

main.c文件

#include"tanghui.h"


tanghui.h文件
#include"th.h"
.
.
.
.
.

是这样的依赖关系,我的Makefile怎么写呢?

请高手指点一下!

[解决办法]
这个不需要手动去一个个的加;可以利用gcc 的机制自动生成依赖关系。
可以参考下面的makefile(假定main.c, tanghui.h, 以及 makefile 在同一个目录):

C/C++ code
vpath = .CPPFLAGS = -I .SOURCES = main.cmain :  main.cinclude $(subst .c,.d,$(SOURCES))%.d: %.c    $(CC) -M $(CPPFLAGS) $<  > $@.$$$$;  \    sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \    rm -f $@.$$$$
[解决办法]
刚才在我的机器上试了一下,上面那个makefile会有错误,改成下面的就可以了:
C/C++ code
vpath = .CPPFLAGS = -I .SOURCES = main.cmain :  main.omain.o : main.cinclude $(subst .c,.d,$(SOURCES))%.d: %.c    $(CC) -M $(CPPFLAGS) $<  > $@.$$$$;  \    sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \    rm -f $@.$$$$ 

热点排行