如果你在iOS上使用curl碰到不能编译的问题,请呼叫我

改哪个设置啊, 求指点

hello~ 麻烦问下,我这边cocos2dx 版本的2.2.6 ,在arm64下编译,其他问题都已解决,但是libcurl死活链接不过去,直接用3.x版本的头文件+libcurl.a和libcurl_arm64.a,报错说
Undefined symbols for architecture x86_64:
“_opendir$INODE64”, referenced from:
_OPENSSL_DIR_read in libcurl.a(o_dir.o)
“_readdir$INODE64”, referenced from:
_OPENSSL_DIR_read in libcurl.a(o_dir.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如果用网上的一个 ioscurl-7.40.0.tar.gz ,它本身编译运行都没问题,armv7 7s,64都ok,但是我移到cocos2dx里就会报错
Undefined symbols for architecture x86_64:
“_SSLClose”, referenced from:
_Curl_darwinssl_close in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLCopyPeerTrust”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
_darwinssl_connect_step2 in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLCreateContext”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLGetBufferedReadSize”, referenced from:
_Curl_darwinssl_data_pending in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLGetNegotiatedCipher”, referenced from:
_darwinssl_connect_step2 in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLGetNegotiatedProtocolVersion”, referenced from:
_darwinssl_connect_step2 in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLGetNumberSupportedCiphers”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLGetSessionState”, referenced from:
_Curl_darwinssl_check_cxn in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLGetSupportedCiphers”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLHandshake”, referenced from:
_darwinssl_connect_step2 in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLRead”, referenced from:
_darwinssl_recv in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetCertificate”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetConnection”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetEnabledCiphers”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetIOFuncs”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetPeerDomainName”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetPeerID”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetProtocolVersionMax”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetProtocolVersionMin”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLSetSessionOption”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SSLWrite”, referenced from:
_darwinssl_send in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecCertificateCopySubjectSummary”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
_append_cert_to_array in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecCertificateCreateWithData”, referenced from:
_append_cert_to_array in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecIdentityCopyCertificate”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecItemCopyMatching”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecPKCS12Import”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecPolicyCreateSSL”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecTrustEvaluate”, referenced from:
_darwinssl_connect_step2 in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecTrustGetCertificateAtIndex”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecTrustGetCertificateCount”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecTrustSetAnchorCertificates”, referenced from:
_darwinssl_connect_step2 in libcurl.a(libcurl_la-curl_darwinssl.o)
“_SecTrustSetAnchorCertificatesOnly”, referenced from:
_darwinssl_connect_step2 in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecClass”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecClassIdentity”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecImportExportPassphrase”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecImportItemIdentity”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecMatchLimit”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecMatchLimitOne”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecMatchPolicy”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
“_kSecReturnRef”, referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

然后我下载了curl源码,再不用arch直接make出不同架构的静态库,添加到工程中,又说新的头文件报错:
/*

  • Verify that the size previously defined and expected for long
  • is the same as the one reported by sizeof() at compile time.
    */

typedef char
curl_rule_01
;

/*

  • Verify that the size previously defined and expected for
  • curl_off_t is actually the the same as the one reported
  • by sizeof() at compile time.
    */

typedef char
curl_rule_02
;

有点崩溃,请问如何解决?
另求楼主QQ

分别为i386,x86_64,armv7,armv7s,arm64这些cpu架构编译静态库和生成头文件,
然后把所有静态库用lipo合并成一个静态库。

上面这个是怎么做的啊????求指导

请问你问题解决了吗????我也遇到一样的问题,从网上下的ioscurl-7.40.0.tar.gz,替换掉就出现Undefined symbols for architecture x86_64

xcode-select --install,执行这个命令即可

楼主,我现在是Xcode7,iOS9.翻了N多的教程,没弄成功,麻烦楼主发一份给我~983174628@qq.com
谢谢啦~Xcode高一点的版本没问题吧?

别用百度,用谷歌。 ios curl 第一个就是开源库。运行下,自动编译最新的库。直接用就行。

https://github.com/biasedbit/curl-ios-build-scripts

有小问题,看issues。

这个时间有点久远了,不过能用就好~我照着楼主大神的方法做了,结果出现如同楼主那样的错误,还在调试中…

刚刚看了一下,这个是更新到最新的.我等下试试~

请查看我的新帖: http://www.cocoachina.com/bbs/read.php?tid-456515.html

请查看: http://www.cocoachina.com/bbs/read.php?tid-456515.html

https://github.com/biasedbit/curl-ios-build-scripts我使用github上的这个脚本自动编译以后,引入.a 和includ头文件之后出现libcurl linker command failed with exit code 1的错误。困扰很久了…

对啊,之前好像有一个简单方法,不需要每个编译的,忘了,这个方法不是很靠谱,xcode不能用旧的编译

而且mac自带curl因为可以通过curl "http://github.com"直接下载项目的

我也不会编译多个curl,我现在想到的方法就是直接引用源码
如果有编译curl _x86_64 | arm64 | i386 的方法,请帖出来