簡體   English   中英

Xcode5上的libcurl鏈接器錯誤,但在Xcode 4.6上可以正常工作

[英]libcurl linker error on Xcode5 but working fine on Xcode 4.6

我有一個使用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已經存在於該項目中,並且我已將“ Active Active Architecture”設置為“否”。並且由於它在Xcode 4.6.3中進行編譯,因此我認為這與缺少目標成員資格無關。

有什么辦法解決這個問題? 或一個可能的解決方法,使此庫與Xcode5一起使用非常重要,因為它需要在iOS7應用程序中使用。

因此,發布答案,以便對可能遇到類似情況的任何人有用。 我能夠從@deltheli和@sergio的評論中找出問題,非常感謝他們的幫助。

因此,我必須運行lipo -info來了解受支持的體系結構,並發現不支持armv7s和arm64,因此我嘗試在armv7中對其進行編譯,但失敗並解釋了為什么它在Xcode 4.6而不是5中可以完美運行的問題我的libcurl已經過時了! 而且我使用的版本不支持某些DarwinSSL符號。 使用最新的足夠的版本為我解決了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM