gpt4 book ai didi

visual-studio - 将/Zi 与/Z7 用于 Visual Studio C++ 项目有什么影响?

转载 作者:行者123 更新时间:2023-12-03 07:51:38 27 4
gpt4 key购买 nike

背景

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

  • (无)
  • 创建无调试信息
  • 更快的编译时间
  • /Z7
  • 使用 CodeView 格式在 .obj 文件中生成全符号调试信息
  • /Zi
  • 使用程序数据库格式在 .pdb 文件中为目标生成全符号调试信息。
  • 启用对最小重建 (/Gm) 的支持,这可以减少重新编译所需的时间。
  • /ZI
  • 除了支持 Edit-and-Continue 之外,生成/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 - 将/Zi 与/Z7 用于 Visual Studio C++ 项目有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284778/

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