【发布时间】:2012-07-23 13:13:05
【问题描述】:
我正在使用几个 boost 库并使用下面的规则来生成自动依赖项。我认为 boost headers 确实减慢了编译速度,因为没有 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 标头,因此没有理由将它们添加为依赖项。因此,您可以寻找一种方法来排除 boost 标头(也可能是其他系统标头)。
-
(删除了我的答案,因为我意识到它与您的具体问题并不真正相关)。就我个人而言,我编写了一个自定义 Python 脚本,它可以在不到 1 秒的时间内扫描我的
src并编写一个非常简单的(没有*规则,或 GCC 生成依赖项)Makefile。 -
我在 ruby 中做了同样的事情来为我的 rake 构建生成依赖文件。它只是省略了 括号中的所有内容。
标签: c++ boost dependencies makefile