gpt4 book ai didi

visual-studio - 对 Visual Studio C++ 项目使用/Zi vs/Z7 有什么影响?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:48:08 25 4
gpt4 key购买 nike

背景

有几种不同的debug flags您可以使用 Visual Studio C++ 编译器。它们是:

  • (无)
    • 不创建调试信息
    • 更快的编译时间
  • /Z7
    • 使用 CodeView 格式在 .obj 文件中生成全符号调试信息
  • /子
    • 使用程序数据库格式在 .pdb 文件中为目标生成完整的符号调试信息。
    • 启用对最小重建 (/Gm) 的支持,这可以减少重新编译所需的时间。
  • /子
    • 生成调试信息,如/Zi,但不支持“编辑并继续”

问题

  • /Gm 标志与 /MP flag for Multiple Process builds 不兼容( Visual Studio 2005/2008)

  • 如果您想启用最少的重建,则/Zi 标志必须优于/Z7 标志。

  • 如果您要使用/MP 标志,在 MSDN 上看/Z7 和/Zi 似乎没有区别。然而,SCons documentation指出您必须使用/Z7 来支持并行构建。

问题

  • 在 Visual Studio C++ 项目中使用/Zi 与/Z7 有什么含义?

  • 我错过了这些选项中的任何一个的其他优点或缺点吗?

  • 具体而言,对于目标,单个程序数据库格式 (PDB) 文件与每个源的多个 CodeView 格式 (.obj) 文件相比,有何优势?

引用资料

MDSN /Z7, /Zi, /ZI (Debug Information Format)

MSDN /MP (Build with Multiple Processes)

SCons Construction Variables CCPDBFLAG

Debug Info

最佳答案

Codeview 是一种更古老的调试格式,它是在 1980 年代中期的“Microsoft C 编译器”时代与 Microsoft 旧的独立调试器一起引入的。它占用更多磁盘空间,调试器解析所需时间更长,并且在链接期间处理起来非常痛苦。当我在 1998-2000 年为 Windows 开发 CodeWarrior 时,我们从我们的编译器生成了它。

一个优点是 Codeview 是一种文档化格式,当其他工具无法处理 PDB 格式的调试数据库时,它们通常可以处理它。此外,如果您一次构建多个文件,则不会争用项目的调试数据库。然而,对于如今的大多数用途而言,使用 PDB 格式是一个巨大的胜利,无论是在构建时间上还是在调试器启动时间上。

关于visual-studio - 对 Visual Studio C++ 项目使用/Zi vs/Z7 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com