这样做有什么问题(考虑并行制作)?

时间:2011-03-22 06:27:39

标签: makefile

我有2个目录A,A表示我有B。

目录A中的Makefile如下所示:

include rules.mk            //defines common rules for generating *.o from *.cpp *.c

OBJECTS = test.o \
          B\test1.o \
          B\test2.o

test.lo : $(OBJECTS)
   $(LD) $(LD_OPTS) -o $@ $^
   $(CREATE_CXX_SO)

因为B没有在其中定义Makefile。

是否必须在子目录中包含Makefile?对于串行播放,这似乎不会造成问题,但在进行并行操作时,有时会$(LD)尝试在编译conn.loB/test1.o之前创建B/test2.o

如果我上面做的是错的,我有哪些选择?

1 个答案:

答案 0 :(得分:0)

我读了一篇关于递归使用make的优秀文章......你猜对了,Recursive Make Considered Harmful。本文详细介绍了make令人沮丧的常见递归使用问题,以及如何构建Makefile以使其能够更好,更可靠地并行运行。

或者,您可以使用效果极佳的SCons