Ios Xcode5上的libcurl链接器错误,但在Xcode4.6上工作正常

Ios Xcode5上的libcurl链接器错误,但在Xcode4.6上工作正常,ios,objective-c,xcode,llvm,libcurl,Ios,Objective C,Xcode,Llvm,Libcurl,我有一个使用libcurl.all.a的项目。它在Xcode 4.6.3上完美构建、链接和运行。但在Xcode5中,它会在未定义的符号上抛出链接器错误。错误日志如下所示 Undefined symbols for architecture i386: "_SSLCopyPeerCertificates", referenced from: _darwinssl_connect_common in libcurl.all.a(libcurl_la-curl_darwinssl.

我有一个使用libcurl.all.a的项目。它在Xcode 4.6.3上完美构建、链接和运行。但在Xcode5中,它会在未定义的符号上抛出链接器错误。错误日志如下所示

  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的评论中理清这个问题,非常感谢他们的帮助

所以,我不得不跑 -信息 了解支持的体系结构,以及
发现armv7s和arm64不受支持,所以我尝试在armv7中编译它,但失败了,这解释了为什么它在Xcode 4.6中工作得很好,而在Xcode 5中却不工作的问题。我的卷发已经过时了!我使用的版本不支持一些
DarwinSSL
符号。使用足够新的版本为我解决了这个问题

你能检查一下lipo-info libcurl.all.a返回的内容吗?i386系列在那里吗?@sergio:Yup,它在fat文件libcurl.all.a中有
架构:i386 armv7(cputype(12)cpusubtype(11))
。Xcode5是为标准体系结构armv7和armv7s构建的,这会是一个问题吗?您正在使用的libcurl的版本是什么?您应该注意使用足够新的版本(即7.28.1+),因为已经引入了与DarwinSSL相关的重要修复程序(例如使用仅存在于OS X上的API)。有关更多详细信息,请参见此。这可以解释您的链接错误(这些符号在DarwinSSL中不存在)。@deltheil:Perfect!,是的,我的libcurl版本很旧,经过修改和重新编译。让它工作起来。谢谢:)