Apple Mach-O Linker错误。 “ _OBJC_CLASS _ $ _ SwiftObject”和基金会未定义

时间:2018-07-05 16:14:06

标签: swift linker protocol-buffers foundation hyperledger-sawtooth

我有一个带库的项目。如果我选择库作为构建目标,则它将成功构建。如果我选择项目作为目标,则将出现链接器错误Undefined symbols for architecture x86_64:和未定义符号的列表。 奇怪的是,所有这些符号都是标准的东西,例如"_OBJC_CLASS_$_SwiftObject""Foundation.URLRequest.httpBody.setter : Foundation.Data?""Swift.String.init(Swift.Substring) -> Swift.String"

Errors list

当我从构建中删除SawtoothProtobuf.pb.swift文件时,该错误消失了。但是,当仅构建包含此文件的lib项目时,一切都将成功构建。

1 个答案:

答案 0 :(得分:0)

我也遇到了非常类似的问题。我试图通过将@objc和@objMember放在所有必需的东西之前,从swift框架构建一个静态库,以使obj-c可以访问该静态库,但您却遇到了类似的错误。但这很奇怪,因为它可以在框架中工作,而在代码所有者的演示应用程序中也可以工作,但是当我将其安装在我的机器上时却失败了...

添加空白的swift文件已为我修复。我猜需要在应用程序中加载一些快速库,如果没有公开的快速代码,则不会发生。