gpt4 book ai didi

c++ - 启用 "Optimize for debugging"的后果是什么?

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

在 visual studio 中,项目的链接器设置中有一个名为“优化调试”的选项:

Project Debug Options

默认情况下它被设置为“为调试而优化(/DEBUG)”,即使对于发布配置也是如此。这是为什么?这会以任何方式改变构建的程序吗?启用它有什么缺点吗(执行速度较慢?)?我应该在发布程序之前将此选项设置为“否”吗?还是只是启用/禁用生成 .pdb-debug 文件(=启用时编译时间变慢)?

最佳答案

/DEBUG链接器选项有两个直接影响:链接时间以及通过程序数据库文件 (.pdb) 可用的信息量。

  • /DEBUG:FASTLINK 减少链接时间,但只生成部分 .pdb。私有(private)符号信息保留在编译产品(库和目标文件)中。当这些编译产品可用时(通常在调试在本地计算机上构建的应用程序时),应使用此选项。
  • /DEBUG:FULL 以(相当)更长的链接时间为代价生成完整的 .pdb。当您需要调试无法访问编译产品(库和目标文件)的应用程序时,此选项很有用。这通常在部署应用程序时使用,其中 .pdb 与源代码一起存储在 SCM 中。

通常使用以下设置:

  • 使用 /DEBUG:FASTLINK 进行调试构建。这减少了链接时间,并且部分 .pdb 不是问题,因为带有私有(private)符号信息的编译产品可用。
  • /DEBUG:FULL 用于即将部署的发布版本。这会生成调试已部署应用程序所需的完整 .pdb,其中包含私有(private)符号信息的编译产品不再可用。
  • 不要使用/DEBUG。此开关的含义在不同版本的 Visual Studio 中发生了变化(VS 2015 的默认值为 /DEBUG:FULL,VS 2017 的默认值为 /DEBUG:FASTLINK)。以静默方式升级项目会更改此链接器设置的解释,这可能是不可取的。

关于c++ - 启用 "Optimize for debugging"的后果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44455239/

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