当前位置: 技术问答>linux和unix
makefile的一个问题
来源: 互联网 发布时间:2016-07-30
本文导语: 我的程序中,有A、B、C、D四个函数,分别写成c文件,在B、C、D中调用了A函数。 现在我把B、 C、D分别编写为线程,在主线程中创建。 在写makefile的时候,我是这么写的: test.c:A.o B.o C.o D.o gcc -o A.o B.o C....
我的程序中,有A、B、C、D四个函数,分别写成c文件,在B、C、D中调用了A函数。
现在我把B、 C、D分别编写为线程,在主线程中创建。
在写makefile的时候,我是这么写的:
test.c:A.o B.o C.o D.o
gcc -o A.o B.o C.o D.o
A.o:A.c
gcc $C A.c
B.o:B.c
gcc $C B.c
C.o:C.c
gcc $C C.c
D.o:D.o
gcc $C D.c
请问这种方式写是否合理?感觉这种有点麻烦。
对于这种互相依赖、多个依赖一个得情况应该怎么写呢?
现在我把B、 C、D分别编写为线程,在主线程中创建。
在写makefile的时候,我是这么写的:
test.c:A.o B.o C.o D.o
gcc -o A.o B.o C.o D.o
A.o:A.c
gcc $C A.c
B.o:B.c
gcc $C B.c
C.o:C.c
gcc $C C.c
D.o:D.o
gcc $C D.c
请问这种方式写是否合理?感觉这种有点麻烦。
对于这种互相依赖、多个依赖一个得情况应该怎么写呢?
|
A better way:
test : A.o B.o C.o D.o
gcc -o $@ $^
%.o : %.c
gcc -o $@ $^
test : A.o B.o C.o D.o
gcc -o $@ $^
%.o : %.c
gcc -o $@ $^
|
X.o只需要X.c的话(名称相同),可以不写的,默认就是这样编译的。