【问题标题】:Undefined symbols for architecture armv7 when adding CocoaAsyncSocket添加 CocoaAsyncSocket 时架构 armv7 的未定义符号
【发布时间】:2012-04-19 03:15:06
【问题描述】:

我正在尝试将 XMPPFramework 与 xcode 4.2.1 下的 iOS5 项目 (ARC) 一起使用,但我遇到了这个问题。一旦我将 CocoaAsyncSocket 添加到我的项目中,作为准备我的项目以使用 XMPPFramework 的一部分,如1我收到以下错误。

我看到其他人有“架构 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)

【问题讨论】:

    标签: objective-c ios ios5 xmpp xmppframework


    【解决方案1】:

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

    【讨论】:

    • 有效!我想知道在任何地方都没有指出还需要安全框架。谢谢你的回答。
    • 顺序很重要:先CFNetwork.framework,后Security.framework;编译时出现 14 个错误,修复后一切正常。
    • 关于我的最后一条评论,请按:项目 > 构建阶段 > 链接库。
    • 我也遇到了这个问题。如何添加 SecurityFramework?
    猜你喜欢
    • 2016-04-29
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2012-06-11
    • 1970-01-01
    相关资源
    最近更新 更多