1. 程式人生 > >duplicate symbols for architecture arm64 導入的類庫字符重復

duplicate symbols for architecture arm64 導入的類庫字符重復

一個 個人 other ica html 授權登錄 ase ng- duplicate

這個錯誤大部分時候是引用庫重復定義的問題。

項目需要,同時引用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 導入的類庫字符重復