今天在官网上下载了一个新版本的微信SDK,这个SDK是支持64位和bitcode的(bitcode是ios9 中新增加的功能)。
按照官网的说明,增加了info.plist和类库,但是编译的时候出现了下面的错误:
Undefined symbols for architecture armv7:
"operator new[](unsigned long)", referenced from:
+[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeWithBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
"operator delete[](void*)", referenced from:
+[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeWithBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
根据我前面 http://blog.csdn.net/mgr406176009/article/details/42456147 中提到的修改方法进行了修改,但还是错误。
造成错误的原因:这是由于c++引起的错误,缺少c++的相关类库
以下是解决办法:
添加 libc++.tbd 类库
注:xcode7以后的版本是libc++.tbd。以前的版本是libc++.dylib。