gpt4 book ai didi

c++ - CMake 构建模式 RelWithDebInfo

转载 作者:IT老高 更新时间:2023-10-28 22:34:01 26 4
gpt4 key购买 nike

我认为我了解发布和调试构建模式之间的区别。主要区别在于,在 Debug模式下,生成的可执行文件没有经过优化(因为这可能会使调试更加困难)并且包含调试符号。

在构建 PCRE(WinMerge 的外部依赖项之一)时,我注意到了一种我以前从未见过的构建模式:RelWithDebInfo。

这里提到了Debug和RelWithDebInfo的区别:http://www.cmake.org/pipermail/cmake/2001-October/002479.html .摘录: “RelwithDebInfo 与 Release 模式非常相似。它生成完全优化的代码,但也构建程序数据库,并插入调试行信息,让调试器有机会随时猜测您在代码中的位置。”

这听起来确实是个好主意,但如何设置并不一定很明显。此链接描述了如何为 VC++ 启用此功能:http://www.cygnus-software.com/papers/release_debugging.html

我是否遗漏了什么,或者将所有发布代码编译为 RelWithDebInfo 没有意义?

最佳答案

就我而言,在没有内部存储相应调试符号的情况下向客户发送代码是在调试生产问题时导致脱发的秘诀。

使用调试符号调试 Release 版本与调试 Debug 版本几乎没有什么不同,因此我建议始终这样做。

也就是说,我不知道是否有任何缺点。如果是这样的话,会很有趣。

关于c++ - CMake 构建模式 RelWithDebInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1239845/

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