改哪个设置啊, 求指点
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。
这个时间有点久远了,不过能用就好~我照着楼主大神的方法做了,结果出现如同楼主那样的错误,还在调试中…
刚刚看了一下,这个是更新到最新的.我等下试试~
https://github.com/biasedbit/curl-ios-build-scripts我使用github上的这个脚本自动编译以后,引入.a 和includ头文件之后出现libcurl linker command failed with exit code 1的错误。困扰很久了…
我也不会编译多个curl,我现在想到的方法就是直接引用源码
如果有编译curl _x86_64 | arm64 | i386 的方法,请帖出来