我正在尝试在xcode 4.2.1下使用XMPPFramework和iOS5项目(ARC),但我遇到了这个问题。一旦我将CocoaAsyncSocket添加到我的项目中,作为准备我的项目以使用1中的XMPPFramework的一部分,我收到以下错误。
我见过其他人有“未定义的架构armv7符号”,但我目前还没有找到这个问题的答案。
我已链接到CFNetwork并将GCDAsyncSocket.m标记为非ARC(-fno-objc-arc)但我仍然收到错误。任何帮助表示赞赏。
Undefined symbols for architecture armv7:
"_SSLGetBufferedReadSize", referenced from:
___33-[GCDAsyncSocket flushSSLBuffers]_block_invoke_0 in GCDAsyncSocket.o
-[GCDAsyncSocket doReadData] in GCDAsyncSocket.o
"_SSLSetIOFuncs", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
"_SSLRead", referenced from:
-[GCDAsyncSocket flushSSLBuffers] in GCDAsyncSocket.o
-[GCDAsyncSocket doReadData] in GCDAsyncSocket.o
"_SSLWrite", referenced from:
-[GCDAsyncSocket doWriteData] in GCDAsyncSocket.o
"_SSLClose", referenced from:
-[GCDAsyncSocket closeWithError:] in GCDAsyncSocket.o
"_SSLCreateContext", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
"_SSLSetEnabledCiphers", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
"_SSLSetCertificate", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
"_SSLSetConnection", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
"_SSLHandshake", referenced from:
-[GCDAsyncSocket ssl_continueSSLHandshake] in GCDAsyncSocket.o
"_SSLSetProtocolVersionMax", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
"_SSLSetPeerDomainName", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
"_SSLSetProtocolVersionMin", referenced from:
-[GCDAsyncSocket ssl_startTLS] in GCDAsyncSocket.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:67)
您只需在框架中添加SecurityFramework即可。我也遇到了同样的问题。