【问题标题】:How to link to libz and libsqlite in xcode 7 beta?如何在 xcode 7 beta 中链接到 libz 和 libsqlite?
【发布时间】:2015-08-31 18:57:09
【问题描述】:

我收到如下链接错误:

   +[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
  "_deflate", referenced from:
      +[MTAWXOHelper GZip:Out:] in libWeChatSDK.a(MTAWXOHelper.o)
  "_deflateEnd", referenced from:
      +[MTAWXOHelper GZip:Out:] in libWeChatSDK.a(MTAWXOHelper.o)
  "_deflateInit2_", referenced from:

但我已经将这些库添加到我的目标中。但目前所有这些库都有不同的扩展名 .tbd。

有什么想法吗?谢谢。

【问题讨论】:

标签: ios swift xcode7


【解决方案1】:

在链接 tbd 文件时,XCode 7 中存在一个已知问题。这是苹果开发者论坛关于如何在 XCode 7 中链接 tbd 文件的答案的链接 - https://forums.developer.apple.com/message/8609#8609

[下面链接中的片段]

这是 Xcode 7 测试版中的一个已知问题。

要暂时解决此问题,请:

  • 从链接库阶段或复制的捆绑资源阶段(有时会添加它们)中删除对 .tbd 文件的所有引用。
  • 通过添加以下参数,手动将要链接的库添加到“其他链接器标志”构建设置: -l 用于您要链接的每个库(例如,添加“-lsqlite3”(不带引号))。

对于那些好奇的人,.tbd 文件是新的“基于文本的存根库”,它提供了一个更紧凑的存根库版本供 SDK 中使用,并有助于显着减少其下载大小。

【讨论】:

  • "... 并有助于显着减少其下载大小,但代价是它实际上无法正常工作" :)
【解决方案2】:

我有两个使用 zlib 的项目,一个发现它可以链接,一个没有。我通过使用“链接框架和库”中的“+”来设置它们。我终于想出了如何修复不工作的:

  1. 删除您在之前尝试中添加的所有指向 zlib 的链接
  2. 打开 Finder,前往 /usr/lib,然后将 libz.dylib 别名拖到项目的 Frameworks 文件夹中
  3. 编译。这对我来说是 2015 年 8 月 23 日。

【讨论】:

    猜你喜欢
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 2015-11-26
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多