如何在xcode 7 beta中链接到libz和libsqlite?

时间:2015-06-16 05:24:53

标签: ios swift xcode7

我收到链接错误,如:

   +[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。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:10)

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

[链接的片段可在下面找到]

  

这是Xcode 7 beta中的一个已知问题。

     

暂时解决此问题,请:

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

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

答案 1 :(得分:4)

我有两个使用zlib的项目,一个发现它要链接,一个没有。我使用" +"来设置它们。在"链接的框架和图书馆"。我终于想出了如何解决这个问题:

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