使用 Cmake 的 RelWithDebInfo 作为默认构建类型
Using Cmake's RelWithDebInfo as Default Build Type
在开发和分发应用程序时,使用RelWithDebInfo作为默认构建类型有什么缺点吗?
在发布模式下出现问题而不是在调试模式下出现问题后,我想到了这一点。从那时起,我使用RelWithDebInfo构建类型作为默认值。我仍然可以调试代码,并且我没有遇到任何与构建类型相关的问题。
这是一个很好的方法来防止错误,不发生在调试模式,但发生发布模式?
调试优化构建的通常缺点仍然存在。
特别地,调试器可能偶尔会对变量的值撒谎。此外,通常不可能检查已优化的变量,这通常会影响函数参数和局部变量。
更糟糕的是,你没有得到断言。RelWithDebInfo设置NDEBUG
预处理器标志,该标志关闭断言,并剥夺了您诊断编程错误的强大工具。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- C++为构建时间获取QDateTime的可靠方法
- 默认/样板代码在Visual Studio 2017中给我错误.E1574.虚幻.但构建成功了
- 如何构建默认使用我自己的构建libc ++的clang?
- Eclipse 构建错误在默认的 hello world 上
- 如何配置要使用默认的HTML包装器构建的Emscripten目标
- 在CMAKE中,如何以每个用户为基础更改构建类型的默认编译器标志
- 在C++构建器5中设置默认浏览器
- 使用默认 cl.exe 或自定义蝙蝠进行构建
- 在构建CMake时使用非默认的libstdc++
- EclipseCDT-带有现有代码的新Makefile项目-更改全局默认构建目标
- 我如何构建公共数据,同时保留默认的移动元素和分配
- 增强构建显示默认工具集和版本
- 默认情况下使用g++而不是arm编译器进行构建
- 新安装的VS 2012将不会构建默认的控制台应用程序:缺少SDKDDKVer.h(和stdio.h / CRT)
- 在Windows 8 metro上构建默认的cocos2d-x项目
- 哪里为OSX 10.6上C++应用程序的默认构建定义了__LP64__
- 修改用于构建boost的默认编译器路径
- 如何以激励精神构建默认值语法
- 使用 Cmake 的 RelWithDebInfo 作为默认构建类型