[英]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.