我使用了几个boost库,并使用下面的规则生成自动依赖项。我认为boost头确实会减慢编译速度,因为如果没有Makefile中包含的依赖项,编译项目的速度会快10倍左右。有没有一种方法可以通过生成依赖关系来提高速度?
%.o: %.cc
$(CXX) $(CFLAGS) $(INCLUDES) -MD -c $< -o $@
@mv $*.d .deps/
@cp .deps/$*.d .deps/$*.tmp
@sed -e 's;#.*;;' -e 's;^[^:]*: *;;' -e 's; *\$$;;'
-e '/^$$/d' -e 's;$$; :;' < .deps/$*.tmp >> .deps/$*.d
@rm .deps/$*.tmp
由于您可能不会更改boost标头,因此没有理由将它们作为依赖项添加。通过使用-MMD生成依赖文件,系统标头应该被忽略,因此依赖文件应该变小,这意味着必须减少扫描硬盘驱动器的次数,以查看文件是否仍然是最新的等等。当然,您必须使用<>包含标头而不是"。