我正在尝试为我的发布配置生成一个 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_SYMBOLS
在 xxx.xcodeproj/project.pbxproj
文件设置为 NO
对于发布配置。删除
[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/