duplicate symbols for architecture arm64 导入的类库字符重复

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了duplicate symbols for architecture arm64 导入的类库字符重复相关的知识,希望对你有一定的参考价值。

这个错误大部分时候是引用库重复定义的问题。

 项目需要,同时引用ZBar和QQ授权登录SDK,由于二者均使用了Base64处理数据,XCode编译时报错:

duplicate symbol _base64_encode in:

...\libzbar.a(symbol.o)

...\TencentOpenAPI(base64.o)

 

意思就是在这两个库中都定义了_base64_encode,编译器认为你重复定义了。至于为什么编译器认为重复定义,个人认为编译器编译全局变量时会根据名字进行编译,会把相同名称的全局变量编译为相同变量,也就是多个编译成一个,而编译器认为这样可能会引起错误,就提醒用户这里有错。

 

解决方案:

    参考了:http://blog.sina.com.cn/s/blog_4beb28f301012bl6.html

删掉了 set building->other linker flag-> -all_load

以上是关于duplicate symbols for architecture arm64 导入的类库字符重复的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之duplicate symbols for architecture x86_64错误

iOS之duplicate symbols for architecture x86_64错误

duplicate symbol for architecture x86_64

如何解决duplicate symbols for architecture x86_64编译错误

duplicate symbols for architecture arm64 导入的类库字符重复

由于枚举类型导致的1 duplicate symbol for architecture x86_64错误