首页 > 解决方案 > Swift - 为什么找不到符号

问题描述

我正在开发的应用程序在 macOS 10.14.3 上运行良好,但是当我在 macOS 10.14.4 上运行它时出现此错误:

dyld: Symbol not found: _$SBOWV
Referenced from: {path to linked library}
Expected in: /usr/lib/swift/libswiftCore.dylib

我怎样才能弄清楚到底发生了什么以及如何解决它?

标签: swiftmacosdylibdyldmissing-symbols

解决方案


这可能是由 Swift 4 和 Swift 5 混合造成的。

$SBOWV 是 Swift 4 中 Swift 标准库中的一个内部例程,但在 Swift 5 中不再存在。听起来您可能有使用 Swift 4 编译的目标代码,但是,您正试图在具有Swift 5 库。这都是 Swift 5 中 ABI 稳定性更改的一部分,并且现在能够在 Swift 5 及更高版本中使用 ABI-stable 框架(在 MacOS 上,Linux 还不是 ABI-stable)。

确保应用程序是使用 Xcode 10.2.x 编译器编译的。一件可能的事情是 compile-toolchains 被设置为非标准编译器。


推荐阅读