ios - Xcode5 上的 libcurl 链接器错误,但在 Xcode 4.6 上工作正常

标签 ios objective-c xcode llvm libcurl

我有一个项目使用 libcurl.all.a .它在 Xcode 4.6.3 上构建、链接和运行完美。但在 Xcode5 中,它会在 undefined symbol 上引发链接器错误。错误日志如下。

  Undefined symbols for architecture i386:
  "_SSLCopyPeerCertificates", referenced from:
      _darwinssl_connect_common in libcurl.all.a(libcurl_la-curl_darwinssl.o)
  "_SSLDisposeContext", referenced from:
      _Curl_darwinssl_close in libcurl.all.a(libcurl_la-curl_darwinssl.o)
      _Curl_darwinssl_shutdown in libcurl.all.a(libcurl_la-curl_darwinssl.o)
      _darwinssl_connect_common in libcurl.all.a(libcurl_la-curl_darwinssl.o)
  "_SSLNewContext", referenced from:
      _darwinssl_connect_common in libcurl.all.a(libcurl_la-curl_darwinssl.o)
  "_SSLSetEnableCertVerify", referenced from:
      _darwinssl_connect_common in libcurl.all.a(libcurl_la-curl_darwinssl.o)
  "_SSLSetProtocolVersionEnabled", referenced from:
      _darwinssl_connect_common in libcurl.all.a(libcurl_la-curl_darwinssl.o)
  ld: symbol(s) not found for architecture i386
  clang: error: linker command failed with exit code 1 (use -v to see invocation)

项目中已经存在 SecurityFramework,我设置了 仅构建事件架构 没有。而且由于它在 Xcode 4.6.3 中编译,我认为它与缺少目标成员资格没有任何关系。

有没有办法解决这个问题?或者一个可能的解决方法,让这个库与 Xcode5 一起工作非常重要,因为它需要在 iOS7 应用程序中使用。

最佳答案

因此,我发布答案,以便它对可能面临类似情况的任何人有用。我能够从@deltheli 和@sergio 的评论中解决问题,非常感谢他们的帮助。

所以,我不得不跑
lipo -信息
了解支持的架构,以及
发现不支持 armv7s 和 arm64,所以我尝试在 armv7 中编译它,但失败并解释了为什么它在 Xcode 4.6 而不是 5 中完美运行的问题。我的 libcurl 已经过时了!而且我使用的版本不支持DarwinSSL符号。使用足够新的版本为我解决了这个问题。

关于ios - Xcode5 上的 libcurl 链接器错误,但在 Xcode 4.6 上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19294737/

相关文章:

c++ - 如何制作反比例循环?

iphone - 比较 2 个相同的字符串

ios - 如何向应用程序添加上下文菜单

ios - 我可以使用 TokBox OTSubscriberKitNetworkStatsDelegate 来计算带宽吗

iphone - 导航栏未显示在推送 View Controller 上

xcode - 如何使用不同的构建配置设置 Xcode 项目依赖项?

objective-c - UICollectionViewCell Y 位置锁定

ios - 试图在 swift 中检测 iphone x 总是返回 false

iphone - UICollectionview 中的不同单元格大小

ios - 检索 NSDictionary 对象