Qt for iOS真机调试调用libcurl:Undefined symbols for architecture arm64:

在用Qt开发iOS程序时,使用curl网络库,库依赖和头文件都设置好了编译的时出现

Undefined symbols for architecture arm64:
  "_SSLGetNegotiatedProtocolVersion", referenced from:
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_SecTrustSetAnchorCertificates", referenced from:
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_SecTrustSetAnchorCertificatesOnly", referenced from:
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLWrite", referenced from:
      _darwinssl_send in libcurl.a(libcurl_la-darwinssl.o)
  "_SecTrustEvaluate", referenced from:
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLHandshake", referenced from:
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLCopyPeerTrust", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_SecTrustGetCertificateCount", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SecTrustGetCertificateAtIndex", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetProtocolVersionMax", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecClass", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecReturnRef", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecMatchLimit", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SecItemCopyMatching", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SecCertificateCopySubjectSummary", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
      _CopyCertSubject in libcurl.a(libcurl_la-darwinssl.o)
  "_SecPKCS12Import", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLGetNegotiatedCipher", referenced from:
      _darwinssl_connect_step2 in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetPeerDomainName", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecImportItemIdentity", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetCertificate", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SecIdentityCopyCertificate", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetEnabledCiphers", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SecPolicyCreateSSL", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLGetBufferedReadSize", referenced from:
      _Curl_darwinssl_data_pending in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecImportExportPassphrase", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLCreateContext", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetSessionOption", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLGetNumberSupportedCiphers", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetProtocolVersionMin", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLGetSessionState", referenced from:
      _Curl_darwinssl_check_cxn in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecMatchLimitAll", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetPeerID", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecAttrLabel", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SecCertificateCreateWithData", referenced from:
      _append_cert_to_array in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLRead", referenced from:
      _darwinssl_recv in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetIOFuncs", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLGetSupportedCiphers", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecMatchPolicy", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLSetConnection", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_kSecClassIdentity", referenced from:
      _darwinssl_connect_common in libcurl.a(libcurl_la-darwinssl.o)
  "_SSLClose", referenced from:
      _Curl_darwinssl_close in libcurl.a(libcurl_la-darwinssl.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **

检查库的路径都在.pro文件中设置好的,检查libcurl.a的架构

lipo -info libcurl.a
Architectures in the fat file: libcurl.a are: armv7 armv7s x86_64 arm64

支持4种架构的平台:armv7 armv7s x86_64 arm64,那怎么还是没有查找到这个呢

原因是在iOS系统中需要设置Security选项,即在.pro文件中添加

ios{
    QMAKE_LFLAGS    += -framework Security
}

如果转成xcode的工程,

/Users/xxx/Qt5.12.8/5.12.8/ios/bin/qmake iOSApp.pro -spec macx-xcode

设置如下

-framework
Security

参考:

c++ - What is the darwinssl library location on Mac OS X? - Stack Overflow

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值