/ZH(用于在调试信息中计算文件校验和的哈希算法)

指定用于生成每个源文件校验和的加密哈希算法。

注释

/ZH 选项在 Visual Studio 2019 版本 16.4 及更高版本中可用。

语法

/ZH:MD5
/ZH:SHA1
/ZH:SHA_256

/ZH:MD5
/ZH:SHA1
/ZH:SHA_256
/ZH:SHA384
/ZH:SHA512

参数

/ZH:MD5
将 MD5 哈希用于校验和。 此选项是 Visual Studio 2019 中的默认选项。

/ZH:SHA1
将 SHA-1 哈希用于校验和。

/ZH:SHA_256
将 SHA-256 哈希用于校验和。 此选项是 Visual Studio 2022 版本 17.0 及更高版本中的默认选项。

/ZH:SHA384
对校验和使用 SHA-384 哈希。

/ZH:SHA512
对校验和使用 SHA-512 哈希。

备注

PDB 文件存储每个源文件的校验和(在相关联的可执行文件中编译为对象代码)。 校验和允许调试器验证其加载的源代码是否与可执行文件匹配。 编译器和调试器支持 MD5、SHA-1 和 SHA-256 哈希算法。 由于 MD5 和 SHA-1 中存在冲突问题的风险,请使用 /ZH:SHA_256 选项或更强。

PDB 文件存储每个源文件的校验和(在相关联的可执行文件中编译为对象代码)。 校验和允许调试器验证其加载的源代码是否与可执行文件匹配。 编译器和调试器支持 MD5、SHA-1、SHA-256、SHA-384 和 SHA-512 哈希算法。 由于 MD5 和 SHA-1 中存在冲突问题的风险,请使用 /ZH:SHA_256 该选项或更强的算法。 SHA-384 和 SHA-512 提供更强的校验和,但它们可以提高编译时间。

注释

/ZH:SHA384 IFC(模块接口)文件不支持和/ZH:SHA512选项。 如果使用其中一个选项编译模块,编译器将发出 致命错误 C1029。 编译 C++ 模块时,请使用 /ZH:SHA_256 或较小的哈希算法。

指定多个 /ZH 选项时,将使用最后一个选项。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开项目的“属性页”对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 将“配置”下拉列表设置为“所有配置”。 将“平台”下拉列表设置为“所有平台”

  3. 选择“配置属性”“C/C++”>“命令行”属性页>

  1. 修改“其他选项”属性以添加、/ZH:MD5/ZH:SHA1/ZH:SHA_256/ZH:SHA384/ZH:SHA512选项,然后选择“确定”。
  1. 修改“其他选项”属性以添加、/ZH:MD5/ZH:SHA1/ZH:SHA_256选项,然后选择“确定”。

另请参阅

编译器选项
调试接口访问 SDK - IDiaSourceFile::get_checksumType
源服务器