自动生成的依赖项导致编译速度缓慢



我使用了几个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生成依赖文件,系统标头应该被忽略,因此依赖文件应该变小,这意味着必须减少扫描硬盘驱动器的次数,以查看文件是否仍然是最新的等等。当然,您必须使用<>包含标头而不是"。

最新更新