当前位置: 技术问答>有关L的问题(菜鸟求教)???
iis7站长之家
有关Makefiel的问题
来源: 互联网 发布时间:2017-02-12
本文导语: 有个问题困扰着我好久了! 在写Makefile的时候,生成点O文件后的依赖文件一定都要写吗?特别是头文件(自己写的头文件)都要列表出来吗? 如果我的头文件中还引用了另外一个头文件呢?又怎么写? 如: main.c文件 #incl...
有个问题困扰着我好久了!
在写Makefile的时候,生成点O文件后的依赖文件一定都要写吗?特别是头文件(自己写的头文件)都要列表出来吗?
如果我的头文件中还引用了另外一个头文件呢?又怎么写?
如:
main.c文件
#include"tanghui.h"
tanghui.h文件
#include"th.h"
.
.
.
.
.
是这样的依赖关系,我的Makefile怎么写呢?
请高手指点一下!
|
这个不需要手动去一个个的加;可以利用gcc 的机制自动生成依赖关系。
可以参考下面的makefile(假定main.c, tanghui.h, 以及 makefile 在同一个目录):
可以参考下面的makefile(假定main.c, tanghui.h, 以及 makefile 在同一个目录):
vpath = .
CPPFLAGS = -I .
SOURCES = main.c
main : main.c
include $(subst .c,.d,$(SOURCES))
%.d: %.c
$(CC) -M $(CPPFLAGS) $ $@.$$$$;
sed 's,($*).o[ :]*,1.o $@ : ,g' $@;
rm -f $@.$$$$
|
刚才在我的机器上试了一下,上面那个makefile会有错误,改成下面的就可以了:
vpath = .
CPPFLAGS = -I .
SOURCES = main.c
main : main.o
main.o : main.c
include $(subst .c,.d,$(SOURCES))
%.d: %.c
$(CC) -M $(CPPFLAGS) $ $@.$$$$;
sed 's,($*).o[ :]*,1.o $@ : ,g' $@;
rm -f $@.$$$$