C++ 在xcode中静态链接libcurl时出现的问题

C++ 在xcode中静态链接libcurl时出现的问题,c++,ios,xcode,libcurl,C++,Ios,Xcode,Libcurl,我收到以下链接器错误 架构x86_64的未定义符号: “\u SSLDisposeContext”,引用自: _libcurl.a(libcurl\u la-curl\u darwinssl.o)中常见的darwinssl\u connect\u _Curl\u darwinssl\u close在libcurl.a中(libcurl\u la-Curl\u darwinssl.o) “\u SSLNewContext”,引用自: _libcurl.a(libcurl\u la-curl\u d

我收到以下链接器错误

架构x86_64的未定义符号: “\u SSLDisposeContext”,引用自: _libcurl.a(libcurl\u la-curl\u darwinssl.o)中常见的darwinssl\u connect\u _Curl\u darwinssl\u close在libcurl.a中(libcurl\u la-Curl\u darwinssl.o) “\u SSLNewContext”,引用自: _libcurl.a(libcurl\u la-curl\u darwinssl.o)中常见的darwinssl\u connect\u “SSLSetEnableCertVerify”,引用自: _libcurl.a(libcurl\u la-curl\u darwinssl.o)中常见的darwinssl\u connect\u “SSLSetProtocolVersionEnabled”,引用自: _libcurl.a(libcurl\u la-curl\u darwinssl.o)中常见的darwinssl\u connect\u “_SecCertificateCopyLongDescription”,引用自: _libcurl.a(libcurl\u la-curl\u darwinssl.o)中常见的darwinssl\u connect\u _在libcurl.a(libcurl\u la-curl\u darwinssl.o)中的数组中追加\u cert\u ld:找不到架构x86_64的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用)

lipo-info说:
fat文件中的架构:libcurl.a是:i386 armv7 armv7s x86_64 arm64

安全性。框架已链接

先谢谢你 问候语
D

以下函数可能从“libcurl.a”文件中丢失。你自己编译libcurl了吗?如果是这样,请寻找一些编译选项,这些选项可能支持包含这些函数,然后重新编译

SSLDisposeContext()
SSLNewContext()
SSLSetEnableCertVerify()
SSLSetProtocolVersionEnabled()
SecCertificateCopyLongDescription()
另外,这个关于堆栈溢出的现有问题可能会有所帮助:(本质上,您的libcurl版本可能太旧了,所以请检查是否有更新)


编辑:正如Mobile Ben在评论中提到的,问题可能与安全框架有关。不过,链接的问题可能会有所帮助。

您是否忘记添加-ObjC链接器标志

链接器尽量只包含所需的代码,这有时会排除静态库代码。使用此标志,库中的所有Objective-C类和类别都将正确加载


SSLDisposeContext等是安全框架的一部分(在SecurityTransport.h中定义),而不是curl的一部分。在阅读了您的答案后,我实际上已经包含了您所谈论的标志(--with darwinssl),但随后重新阅读了问题。缺少的是SSLDisposeContext之类的函数,而阅读您包含的链接似乎是正确的。抱歉错过了最后一部分!实际上是lib curl 7.39.0。我用这个ruby的东西创建了lib:。我对它做了一点修改,以构建一个完整的fatlib(所有的拱门)。如果我为设备(而不是模拟器)构建它,那么就不会发生链接器错误(我今天注意到了),您可以继续吗?