添加CocoaAsyncSocket时出现armv7架构的未定义符号

17

我正在尝试在Xcode 4.2.1下使用XMPPFramework来开发一个iOS5项目(ARC),但是我遇到了这个问题。当我像1中所述的一样将CocoaAsyncSocket添加到我的项目中,为准备使用XMPPFramework时,我遇到了以下错误。

我看到其他一些人有“Undefined symbols for architecture 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)
1个回答

67

你只需要在框架中添加SecurityFramework。我也遇到了同样的问题。


1
它工作了!我在想为什么没有任何地方指出还需要安全框架。感谢您的答案。 - Future2020
7
顺序很重要:先引入CFNetwork.framework,再引入Security.framework;如果顺序不对,在编译时会出现14个错误。修正后,一切都正常了。 - Martin
2
关于我上一条评论,顺序为:项目 > 构建阶段 > 链接库。 - Martin
我也遇到了这个问题。我该如何添加SecurityFramework? - shogitai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接