gpt4 book ai didi

c++ - 使用 Release Build 本身启动 Visual Studio 项目

转载 作者:行者123 更新时间:2023-11-28 00:17:36 26 4
gpt4 key购买 nike

如果我决定在基于 Visual Studio 的 C++ 项目开始时使用发布版本本身,我应该注意哪些陷阱(如果有)?我已经知道如何通过在项目属性中应用必要的更改来调试发布版本。

  • 有没有在发布版本中似乎没有出现的问题,但是调试版本可以突出显示相同吗?
  • 我的项目是小项目还是大项目重要吗?
  • 此外,如果我处理的是托管代码,除了 native C++ 代码。
  • 默认情况下打开的优化怎么样?发布构建。他们会阻碍或隐藏发布版本中的错误吗?

感谢您的宝贵时间。

最佳答案

我不确定您所说的“从发布版本开始”是什么意思,或者为什么这是一个问题。

当您启动一个新的 Visual Studio 项目时,它会为其生成两个配置。调试和发布。您可以随时在 Debug 和 Release 之间切换配置而不会出现问题。

调试版本是关闭了编译器优化的版本。 C/C++ 运行时的默认链接是调试 MSVCRT*.DLL 文件。使用调试构建,逐行调试变得容易得多,因为没有代码或变量被优化掉。您通常不会向客户提供 DEBUG 版本。

发布版本是启用了编译器优化的版本。由于大部分代码是内联和优化的,因此调试稍微困难一些。每个生成的程序集 block 并不总是对应的“代码行”。因此,当使用调试器逐行执行 Release 构建中的函数时,您可能会观察到一些非常奇怪的效果(变量在监 window 口中不可见,指令指针箭头移动到意外的行,等等)。

每个配置都可以有它的优化设置、全局定义和其他编译器/链接器设置 project properties您的 Visual Studio 项目。

FWIW,在我们的产品组中,我们实际上有三种配置:Debug、Release 和 Ship。 Ship 和 Release 构建具有相同的编译器优化,除了在 Ship 构建中,我们将 SHIP_BUILD 声明为定义。某些代码块被排除在代码的 #ifndef SHIP_BUILD 部分。这些通常是不适合客户的测试 Hook 。我们的测试自动化通常在调试和零售配置的组合上运行。

关于c++ - 使用 Release Build 本身启动 Visual Studio 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29273477/

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