引入第三方庫(kù)(ZipArchive)報(bào)錯(cuò),.o文件沖突

Dcloud~引入第三方庫(kù)(ZipArchive)報(bào)錯(cuò),.o文件沖突

#####################################################################################

原文鏈接:https://zhuanlan.zhihu.com/p/94770774

##############

工程集成5+sdk編譯報(bào)錯(cuò)duplicate symbol _OBJC_CLASS_$_ZipArchive in:?

項(xiàng)目遇到如下問題:解決方案如下:

1:項(xiàng)目是使用mui和原生混合開發(fā)的,現(xiàn)需要引入一個(gè)第三方庫(kù) 用原生進(jìn)行解壓文件,但是引入后編譯時(shí)報(bào)錯(cuò),該如何解決?

2:原生代碼如何才能使用到libcoreSupport.a 解壓壓縮文件的方法?

3:iOS解決兩個(gè)靜態(tài)庫(kù)(.framework或.a)中.o文件沖突

4:SDK/Libs/libcoreSupport.a(ZipArchive.o)

5:集成5+sdk時(shí),編譯不過,提示libcoreSupport.a庫(kù)中引用了ZipArchive框架,而我們自己的工程中的某個(gè)framework也引用ZipArchive,就造成編譯不過,有沒有人遇到,如何解決的?

錯(cuò)誤截圖

下邊是之前搜索進(jìn)來的解決方案,可惜都只有問題,沒有答案

引入第三方庫(kù)(ZipArchive)報(bào)錯(cuò) - DCloud問答ask.dcloud.net.cn現(xiàn)有工程集成5+sdk編譯報(bào)錯(cuò)duplicate symbol _OBJC_CLASS_$_ZipArchive in: ../Libs/libcoreSupport.a(ZipArchive.o)ask.dcloud.net.cn

接下來,福利來了,直接上代碼了,如下步驟即可

1:進(jìn)入.a文件的目錄

2:查看.a文件信息:

lipo -info libcoreSupport.a,終端會(huì)顯示該庫(kù)包含的cpu架構(gòu):armv7 x86_64 arm64

3:根據(jù)信息依次拆分文件armv7 x86_64 arm64

armv7拆分:->libcoreSupport_armv7.a

lipo -thin armv7 libcoreSupport.a -output libcoreSupport_armv7.a

執(zhí)行后,就會(huì)在文件夾中看到一個(gè)libcoreSupport_armv7.a的文件,如下圖

x86_64拆分:

lipo -thin x86_64 libcoreSupport.a -output libcoreSupport_x86_64.a

執(zhí)行后,就會(huì)在文件夾中看到一個(gè)libcoreSupport_x86_64.a的文件,如下圖

arm64拆分:

lipo? -thin arm64 libcoreSupport.a -output libcoreSupport_arm64.a

執(zhí)行后,就會(huì)在文件夾中看到一個(gè)libcoreSupport_arm64.a的文件,如下圖

4:依次刪除各個(gè)cpu架構(gòu)需要?jiǎng)h除的.o文件

armv7刪除

ar -d -sv libcoreSupport_armv7.a ZipArchive.o

x86_64刪除

ar -d -sv libcoreSupport_x86_64.a ZipArchive.o

arm64刪除

ar -d -sv libcoreSupport_arm64.a ZipArchive.o

5:將第3步驟的拆分的cpu框架重新組成新的靜態(tài)庫(kù)

注意:將所有cpu架構(gòu)的.a庫(kù)進(jìn)行合并. 需要先把libcoreSupport.a文件刪除掉, 因?yàn)楹喜⒅蟮奈募忠彩莑ibcoreSupport.a,這樣在項(xiàng)目中直接調(diào)用即可

lipo -create -output? libcoreSupport.a? libcoreSupport_arm64.a? libcoreSupport_arm64.a? libcoreSupport_armv7.a

執(zhí)行之后,會(huì)發(fā)現(xiàn)文件夾中又多了一個(gè)libcoreSupport.a文件,刪除以下幾個(gè)文件。

到此,結(jié)束!?。?/p>

重新編譯后運(yùn)行成功

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容