当我绑定obj-C静态库时,我遇到了一个错误。
错误MT5210:本机链接失败,未定义符号:_ASN1_INTEGER_get。请验证是否已引用所有必需的框架,并且已正确链接本机库。(MT5210)
我添加了linkflags:但问题仍然存在。
错误MT5210:本机链接失败,未定义的符号:_SSL_CTX_load_verify_locations。请验证是否已引用所有必需的框架,并且已正确链接本机库。(MT5210)
错误MT5210:本机链接失败,未定义的符号:_X509_STORE_CTX_get_ex_data。请验证是否已引用所有必需的框架,并且已正确链接本机库。(MT5210)
错误MT5210:本机链接失败,未定义符号:_sk_num。请验证是否已引用所有必需的框架,并且已正确链接本机库。(MT5210)
“_ SSL_CTX_free”,引自: libEaseMobClientSDKLite.a中的_init_openssl(ssl_sock_ossl.o) libEaseMobClientSDKLite.a中的_reset_ssl_sock_state(ssl_sock_ossl.o) libEaseMobClientSDKLite.a中的_create_ssl(ssl_sock_ossl.o) “_SSL_CTX_load_verify_locations”,引自: libEaseMobClientSDKLite.a中的_create_ssl(ssl_sock_ossl.o)
我添加了linkflags:
[assembly:LinkWith(“libEaseMobClientSDKLite.a”,LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Simulator,ForceLoad = true, Frameworks =“SystemConfiguration QuartzCore OpenGLES Security CoreText ImageIO MapKit CoreLocation MobileCoreServices AddressBook CFNetwork UIKit Foundation Social CoreGraphics”, LinkerFlags =“ - lz -lxml2 -liconv -lresolv -lstdc ++” )]
以下的屏幕快照是可以通过XCode成功构建的ObjC项目。
答案 0 :(得分:0)
<强>问题强>
这些符号看起来像是来自OpenSSL(libssl),这不是您展示的[LinkWith]
属性的一部分。您也无法添加到可以链接的动态库的LinkerFlags=
列表中。
<强>解决方案强>
您可能错过了项目的另一个静态.a
库; 或
libEaseMobClientSDKLite.a
编译错误(通常包含openssl对象文件)。
如果您有 EaseMobClientSDKLite 的ObjC示例,那么您可以查看Xcode构建日志(链接步骤)以查看构建中引用的openssl的内容(以及如何)。