gpt4 book ai didi

c++ - 使用 Cmake 的 RelWithDebInfo 作为默认构建类型

转载 作者:行者123 更新时间:2023-11-28 06:15:40 25 4
gpt4 key购买 nike

在开发和分发应用程序时,使用 RelWithDebInfo 作为默认构建类型有什么缺点吗?

在 Release模式下出现问题但在 Debug模式下不会出现问题后,我想到了这个问题。从那时起,我就默认使用 RelWithDebInfo 构建类型。我仍然可以调试代码,而且我没有遇到任何与构建类型相关的问题。

这是防止在 Debug模式下不发生但在 Release模式下发生的错误的好方法吗?

最佳答案

调试优化构建的常见缺点适用。

特别是,调试器有时可能会就变量的值对您撒谎。此外,通常无法检查已优化的变量,这通常会影响函数参数和局部变量。

可以说更糟糕的是,您没有得到 asserts . RelWithDebInfo 设置 NDEBUG 预处理器标志,它会关闭断言并剥夺您诊断编程错误的强大工具。

当然,使用 RelWithDebInfo 作为默认值并没有错,但是您仍然应该定期测试所有构建类型。如果您还没有这样做,请为您的项目设置一个持续集成系统,自动对所有构建类型运行所有测试。

关于c++ - 使用 Cmake 的 RelWithDebInfo 作为默认构建类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30383277/

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