我有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.lo
和B/test1.o
之前创建B/test2.o
。
如果我上面做的是错的,我有哪些选择?
答案 0 :(得分:0)
我读了一篇关于递归使用make
的优秀文章......你猜对了,Recursive Make Considered Harmful。本文详细介绍了make
令人沮丧的常见递归使用问题,以及如何构建Makefile
以使其能够更好,更可靠地并行运行。
或者,您可以使用效果极佳的SCons。