xcode - 带有 XCode 目标的 CMake,生成忽略发布配置的调试符号设置

标签 xcode cmake debug-symbols

我正在尝试为我的发布配置生成一个 dSYM 文件。在我的 CMake 配置中,我有:

if (CMAKE_GENERATOR STREQUAL "Xcode")
  # generate debug symbols in a .dsym file for release mode
  set(CMAKE_XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS[variant=Release] 
      "YES")
  set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT[variant=Release] 
      "dwarf-with-dsym")
  # strip symbols from final executable
  set(CMAKE_XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING[variant=Release] 
      "YES")
endif()

调试信息格式和部署后处理都被用于发布配置。然而,Generate Debug Symbols在 XCode 界面/GCC_GENERATE_DEBUGGING_SYMBOLSxxx.xcodeproj/project.pbxproj文件设置为 NO对于发布配置。

Generate debug symbols off in Release

删除 [variant=Release]限制对发布配置没有影响。如果我手动打开 Release 中的设置,我会得到想要的结果。如何让 CMake 使用此设置为 Release 配置创建 Xcode 项目?

我不想使用 RelWithDebInfo因为它的优化设置较低( -O2 而不是 -O3 )。我想要 .dSYM用于调试现场崩溃的文件。

最佳答案

您将不得不求助于修改 CMAKE_CXX_FLAGS虽然我建议使用 target_compile_options 使用生成器表达式:

target_compile_options(your_exe PRIVATE
    $<$<CXX_COMPILER_ID:Clang>:-g>
    )

关于xcode - 带有 XCode 目标的 CMake,生成忽略发布配置的调试符号设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49695234/

相关文章:

iphone - 如何通过按图像保存在 NSArray 中的顺序单击缩略图来打开图像?

iOS,访问保存在 iPad 上的文件

c++ - "Please try enabling Per-user Redirection"与 CMake 和 VS19

c++ - 在 UNIX 上获取调试符号

IOS静态调试符号含义

c++ - Visual C++ 调试器不显示返回值

swift - 如何在 UITableVIew 的不同单元格中使用 UITextView 获取用户输入

iphone - 手指按住屏幕时持续运行方法

cmake - 告诉 CMake 对来自 CMake 的 C 文件使用 C++ 编译器?

c - 正确设置cmakelist来编译项目