在建设有递归依赖一个图书馆,我有这样的片段:makefile文件执行库的依赖订货
$(LIBRARY) : $(OBJECTS) | $(LIBDIR) # objects is all the obj/*.o
$(AR) ...
obj/%.o : %.cpp obj/%.d
$(CC) ...
build : $(DEPENDENCIES) $(LIBRARY)
$(DEPENDENCIES):
$(MAKE) -C $(ROOT)/[email protected]
,如果我跑make
这工作。一切按正确顺序按预期构建。但是如果我运行make -jN
,库的构建顺序很糟糕,因为我实际上没有任何依赖关系排序规则集,导致大量未定义的引用。
如果我添加规则:
$(OBJECTS) : $(DEPENDENCIES)
然后运行make每次重建每个库,无论变化的(DEPENDENCIES
是假的,但我不明白为什么它实际上重建的一切)。我如何为平行构建的目的执行正确的排序而不必每次都重建所有内容?
@MichaelGrünewaldYES !!!谢谢你,你是我的英雄。 – Barry 2014-09-26 19:02:43