如何解决项目中.a文件中的.o冲突
項目中使用了yuemengsdk.a ?現又加入了百度 libbaiduNaviSDK.a 有了沖突
我們需要把.a文件中的.o文件刪除
?
第一步
先將項目備份..萬一沒玩好..去哪說理~~
第二步
在桌面新建文件夾 把需要的.a文件放在新建的文件夾中
?
?
cd到該目錄下查看該文件的cup架構命令行如下
fenghedeMacBook-Pro:合并 fenghe$ lipo -info libbaiduNaviSDK.a Architectures in the fat file: libbaiduNaviSDK.a are: i386 armv7 x86_64 arm64我們看到支持4種 i386 armv7 x86_64 arm64 在這里我們介紹下
因為該.a中包含著4種架構,所以我們要分別對他們讀取并拆分
執行命令行對.a文件進行arm64架構讀取
lipo libbaiduNaviSDK.a -thin arm64 -output libbaiduNaviSDK_arm64.a然后用同樣的方法對其他三種架構進行讀取
讀取完成后的效果如下?
因為我們要對不同類型的架構進行拆分.拆分后會有很多文件,所以我們將每種架構新建個文件夾放入,防止拆分后混淆
?
然后使用命令行分別對不同架構進行拆分并刪除其中重復的.o文件
cd 到arm64文件夾目錄下 執行
ar -x libbaiduNaviSDK_arm64.a分別在4個文件夾目錄下執行以上命令行
執行完畢就代表拆分完畢.然后搜索一下報錯的.o文件并刪除
緊接著合并文件(此時之前根目錄下的libbaiduNaviSDK.a文件就可以刪除了,因為合并后會生成一個新的文件.)
在arm64文件目錄下執行
fenghedeMacBook-Pro:arm64 fenghe$ libtool -static -o ../libbaiduNaviSDK_arm64.a *.o執行完畢后會在根目錄下生成libbaiduNaviSDK_arm64.a文件,這就是合并完成的文件. ?還需要在其他三個文件夾下執行對應的上述命令行 ?執行完畢效果如下
?
?
最后將所有架構類型的.a進行終極合并
cd 到根目錄下 執行
fenghedeMacBook-Pro:合并 fenghe$ lipo -create -output libbaiduNaviSDK.a libbaiduNaviSDK_arm64.a libbaiduNaviSDK_armv7.a libbaiduNaviSDK_i386.a libbaiduNaviSDK_x86_64.a執行完畢后會在根目錄下生成新的.a文件.將其替換掉項目中的即可
?
歡迎大家加入我的iOS(OC/swift/flutter)技術群 不閑聊只技術交流 閑聊勿擾了
201708926
?
轉載于:https://www.cnblogs.com/baxiu/p/11276959.html
總結
以上是生活随笔為你收集整理的如何解决项目中.a文件中的.o冲突的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 377调查和美国的普通诉讼有哪些区别?被
- 下一篇: 房贷被拒首付怎么办