You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关闭Xcode中Address Sanitizer后出现编译错误求助

问题原因与解决方法

这些未定义符号属于Undefined Behavior Sanitizer(UBSan,未定义行为检查器)。当你开启Address Sanitizer(ASan)时,Xcode会自动同时启用并链接UBSan的依赖库;但关闭ASan后,若项目中仍保留了UBSan的编译配置,编译器会生成依赖UBSan的代码,却没有自动链接对应的库,最终导致链接阶段出现符号未定义错误。

解决步骤:

  • 检查并关闭UBSan编译选项
    打开Xcode,选中项目→对应Target→Build Settings:

    • 搜索Undefined Behavior Sanitizer,确保该选项设置为NO
    • 若直接搜索编译标志OTHER_CFLAGS或OTHER_CXXFLAGS,删除其中的-fsanitize=undefined相关参数
  • 排查第三方依赖或脚本的残留配置

    • 检查Podfile、自定义build脚本等,确认是否有强制添加-fsanitize=undefined的代码,移除相关配置
    • 若使用CocoaPods,可执行pod deintegrate后再运行pod install,确保依赖没有残留的Sanitizer设置
  • 验证Build Configuration的一致性
    确认当前使用的Build Configuration(如Debug/Release)下,所有Sanitizer相关选项都已关闭,避免不同配置间的设置冲突

  • 彻底清理编译缓存
    执行Cmd+Shift+K清理Xcode编译缓存,同时删除Derived Data目录,之后重启Xcode重新编译项目

内容的提问来源于stack exchange,提问作者bjorn.lau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:50:38