【问题标题】:how to correctly add sqlite frameworks to the Xcode project?如何正确地将 sqlite 框架添加到 Xcode 项目?
【发布时间】:2018-01-24 04:56:57
【问题描述】:

我正在尝试将 SQLite 添加到我的项目中。我检查了构建阶段选项卡下的目标依赖项,它是空的,这是真的。我收到以下错误:无法运行命令 'Ld SQLite' - 这个目标可能包括它自己的产品。”

我正在使用 swift 3。 你能帮我么?提前致谢

【问题讨论】:

  • 我在 StackOverflow 上看到的关于“目标可能包含它自己的产品”的所有类似错误似乎都归结为一些奇怪的目标配置问题(编译源中包含的依赖项、非源, ETC。)。您可能希望保存此项目文件夹并从头开始创建一个新项目,添加相关源并查看项目的新干净副本会出现同样的问题...
  • 您是否在使用任何第三方库(例如某些 SQLite 包装器)?如果有,是哪一个?

标签: swift xcode sqlite swift3


【解决方案1】:

我目前不在 Mac 前,但我认为您在 Build Phases 下需要做的就是转到 Link Binaries with Libraries,点击添加按钮并输入“sqlite”,以便您可以选择 libsqlite3。

【讨论】:

  • 它成功了,但是有一个新问题:当我导入 SQLite 时,出现错误:NO such module 'SQLite'。
【解决方案2】:

Xcode 9 和 Swift 3.2(或者,显然是 Swift 4),只需在相关的 Swift 文件中导入 SQLite3 ...

import SQLite3

... 它会为您导入库。

在较旧的 Xcode 版本中(或者如果您关闭了自动库/框架链接),您必须在“构建阶段”下的目标设置中手动链接到 libsqlite3 库:

但在具有默认设置的 Xcode 9 中,您所需要的只是 import 行。

【讨论】:

  • 仍然没有这样的模块 sqlite3
  • 你运行的是什么版本的 Xcode?我刚刚在 Xcode 9.2 和 Swift 3.2 上进行了测试,效果很好。
  • 在 Xcode 8 中,您不能使用 SQLite3 的自动导入功能。您必须在目标设置的“构建阶段”中手动将其添加到“链接二进制文件”中,如stackoverflow.com/a/28642293/1271826 所示。
  • 我想知道您是否还需要链接到 SO 答案 @Rob 中的桥接头。
  • @Stonetip - 是的,您通常必须在早期版本的 Xcode 中这样做。但话又说回来,他的错误似乎出在链接器中,所以他必须成功编译才能走到那一步,这意味着它不可能是桥接头问题。不过,坦率地说,我不确定他的错误信息是什么。 SQLite 的东西可能是其他问题的红鲱鱼。
猜你喜欢
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 2016-03-13
  • 2011-11-12
  • 2012-05-19
  • 1970-01-01
相关资源
最近更新 更多