cmake -g标志不生成'带有dSym文件的DWARF'调试信息

Arn*_*age 7 c++ xcode cmake

我正在使用cmake生成C++ Xcode项目,但调试信息永远不会生成.每次使用cmake生成项目时,我都必须从构建设置中手动选择"DWARF with dSym file".

使用'SET(CMAKE_CXX_FLAGS_DEBUG"$ {CMAKE_CXX_FLAGS_DEBUG} -g")'没有任何区别.

我也很确定它曾经与XCode 6正常工作(现在使用Xcode 7)

小智 9

您可以使用CMAKE_XCODE_ATTRIBUTE_*变量.

设置DWARF你可以使用:

set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf")
Run Code Online (Sandbox Code Playgroud)

设置DWARF with dSYM File:

set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
Run Code Online (Sandbox Code Playgroud)

提示

可以在"快速帮助"部分中找到Xcode属性和值的名称(参见方括号[DEBUG_INFORMATION_FORMAT],[dwarf][dwarf-with-dsym]):

在此输入图像描述

  • 另请注意,当今的最佳实践要求直接在目标上设置属性。在这种情况下,可以像这样完成,没有 CMAKE 前缀: set_target_properties(${TARGETNAME} PROPERTIES XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym") (5认同)
  • 请注意,使用 'SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")' 仍然需要与设置 CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT 一起使用 (3认同)