奇怪的 Swift XCode '未定义符号' 错误

Posted

技术标签:

【中文标题】奇怪的 Swift XCode \'未定义符号\' 错误【英文标题】:Strange Swift XCode 'Undefined Symbols' errors奇怪的 Swift XCode '未定义符号' 错误 【发布时间】:2015-04-11 06:13:26 【问题描述】:

我正在使用 Xcode 6.2 为扩展目标编译一些 swift 代码。我不断收到类似以下的错误:

Undefined symbols for architecture x86_64:
  "__TFSSCfMSSFT21_builtinStringLiteralBp8byteSizeBw7isASCIIBi1__SS", referenced from:
      __TFC23Hall_WatchKit_Extension16GlanceControllercfMS0_FT_S0_ in GlanceController.o

如果我声明了一些属性,它编译得很好,但是一旦我尝试使用字符串文字,我就会开始收到这些错误,所以即使是这样简单的代码也会导致错误:

class GlanceController: WKInterfaceController 
    var service = "somestring"

我更新到 XCode 6.3,现在,即使在一个完全空的实现中,我也会遇到如下错误:

Undefined symbols for architecture x86_64:
  "__TFSsoi1aUSs17_RawOptionSetType_USs21BitwiseOperationsTypeSs9Equatable__FTQ_Q__Q_", referenced from:
      __TTWVSC26NSKeyValueObservingOptionsSs21BitwiseOperationsType10FoundationFS0_oi1aUS0___fMQPS0_FTS2_S2__S2_ in GlanceController.o

我已经尝试了此线程中的所有建议:Swift beta 6 - Confusing linker error message 但没有任何帮助。

【问题讨论】:

Xcode 6.3 β2 (6D532l) 在尝试构建新创建的干净项目时给了我大量错误! 也发生在之前的 β1 中。 【参考方案1】:

检查文件的“目标成员”是否合适。

【讨论】:

即使我创建了一个全新的 Swift 项目并尝试运行它,甚至没有在其中编写任何新代码,也会发生这种情况。 我推荐你下载 Xcode 6.1.1 最新版本。我猜你已经下载了 Xcode 6.3 beta 版本。如果您还没有将您的操作系统更新到优胜美地。【参考方案2】:

我发现清除 Xcode 的 DerivedData 缓存为我解决了这个问题(尽管 Product > Clean 没有帮助)。

退出 Xcode 后,导航到 ~/Library/Developer/Xcode/DerivedData 并删除项目的缓存文件夹。您甚至可以删除整个 DerivedData 文件夹,当您重新打开它们时,它将为每个项目重新构建。

重新打开 Xcode,等待它将文件重新索引到它的核心内容,然后构建。

【讨论】:

这对您新创建的项目是否有帮助?即使在清除整个文件夹之后,我也看到了同样的情况。 是的。听起来我的问题很可能是由其他原因引起的,但出现了同样的错误。

以上是关于奇怪的 Swift XCode '未定义符号' 错误的主要内容,如果未能解决你的问题,请参考以下文章

基础框架中单个方法的符号可以未定义吗?

未定义的符号 Swift.UnsafeMutableBufferPointer

Xcode13 未定义符号:___gcov_flush

Xcode 错误 - 架构 x86_64 的未定义符号?

静态 Swift 框架未能通过 CocoaPods 验证,并显示“未定义的架构符号”

架构 armv7 (WebRTC) 的未定义符号