5

我正在管理一个包含大约 xxx 个源文件(Visual Studio 2010)的大型应用程序。

很长一段时间以来,我们使用 /Zi 编译我们的发布版本以获得存储在我们的符号服务器中的 PDB 文件。多年来,我们注意到我们的构建脚本越来越慢,现在构建可执行文件需要 2 个多小时。

诸如在 Visual Studio C++ 项目中使用 /Zi 与 /Z7 有何影响之类的问题?似乎表明 /Z7 是一种旧格式,并且 /Zi 是首选。

尽管如此,我们尝试使用 /Z7 执行我们的构建脚本,我们发现时间从 2 多小时减少到大约 20 分钟。我们还尝试使用 /Zi,但每个源文件 1 个 PDB 文件(链接器仍将其合并到一个大 PDB 文件中),这也提高了编译性能,但略微降低了链接时间性能。

为了优化构建时间,我想切换回 /Z7 (链接器最终仍会生成一个 PDB 文件),但我不确定这是否会对应用程序的“可调试性”产生影响。

问题:

  • 使用/Z7编译时链接器生成的PDB文件的内部调试格式与/Zi相比是否不同(可能格式相同,只是编译器存储调试信息的位置不同)?
  • 与 /Zi 相比,/Z7 会阻止某些类型的调试吗?
  • 通常建议发布版本使用哪种调试格式(/Zi、/Z7)?
4

0 回答 0