c++ - 自动生成的依赖导致编译缓慢

标签 c++ boost dependencies makefile

我正在使用几个 boost 库并使用下面的规则生成自动依赖项。我认为 boost header 确实会减慢编译速度,因为如果 Makefile 中没有包含依赖项,编译项目的速度会快 10 倍。有没有办法 boost 生成依赖项的速度?

%.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 header ,因此没有理由将它们添加为依赖项。通过使用 -MMD 生成依赖文件,系统头文件应该被忽略,因此你的依赖文件应该变小,这意味着 make 必须扫描更少的硬盘驱动器以查看文件是否仍然是最新的等。当然你有包含带有 <> 而不是 ".

的 header

关于c++ - 自动生成的依赖导致编译缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11644074/

相关文章:

c++ - 对于 C++/XAML 文件,Visual Studio 一次会阻止 UI 几分钟

c++ - 如何访问 std::shared_ptr 的内容?

c++ - Crypto++ 是否支持 TOFB-I?

c++ - Boost Meta 状态机在延迟事件时以堆栈溢出结束

java - 如何使用 jar 文件中的依赖项?

php - 为什么某些 Composer 软件包在同一版本中会相互冲突?

C++错误: no matching function for call to 'Track::Track(char, char)'

c++ - 如何按文件大小降序对文件进行排序

c++ - 将 future 与 boost::asio 结合使用

dependencies - 如何从 CMake 或 make 输出编译依赖项?