二道网站建设,制作网站的图片素材,常州seo网站推广,深圳网络推广深圳网项目中会用到许多第三方的.a类型的静态库#xff0c;有时候会有一些静态库回包含相同文件而产生冲突#xff0c;我们就需要对这个库进行去重的一个操作。一般有哪些文件冲突了#xff0c;xcode报错都会有详细的提示。我们可以将这两个库合并#xff0c;也可以其中一方中的文… 项目中会用到许多第三方的.a类型的静态库有时候会有一些静态库回包含相同文件而产生冲突我们就需要对这个库进行去重的一个操作。一般有哪些文件冲突了xcode报错都会有详细的提示。我们可以将这两个库合并也可以其中一方中的文件删除。我们已拆分一个test.a为例作一个简单的总结 一、删除重复文件 第一步首先要确定你所操作的静态库支持的框架 lipo -info test.a 第二步将静态库按照支持的框架拆分 以拆分armv7 框架为例
lipo -extract_family armv7 -output test_armv7.a test.a
这时候去文件夹下查看出现一个test_armv7.a的静态库就说明是成功了
这时候一定要记得确定lipo -info test_armv7.a 一下你拆分出来的版本是否是你想要的这个框架下的第三步删除重复的文件记得是删除你分离出来的单框架库中的文件 ar -d test_armv7.a test1.o第四步将静态库支持的框架都进行第二步和第三步操作。 第五步将操作完成的库合并成新的库 lipo -create -output test_new.a test_armv7.a test_arm64.a 二、合并静态库 合并静态库和删除重复文件都需要确定支持框架和按照支持的框架拆分就不在赘述了。 第三步将分解库中的文件拆分出来 ar -x test_armv7.a
这时候你的文件夹中会出现你库中包含的.o文件第四步将你需要合并的另一个库进行相同操作将文件分解到相同文件夹中相同的文件回自动的保留一份。 注意: 1、我是在相同的文件中操作的所以最后分解完成记得将 test.a等源库删除。2、不同的框架下的文件记得分解到不同的文件夹中。第五步生成不同框架下的静态库 ibtool -static -o test_new_armv7.a *.o第六步合成新的静态库 lipo -create -output test_new.a test_new_armv7.a test_new_arm64.a 指令合集 直接copy可用的
lipo -info SpeexKit.aarm64 arm64e armv7 armv7s lipo -extract_family arm64 -output SpeexKitv64.a SpeexKit.alipo -info SpeexKitv64.alipo SpeexKitv64.a -thin arm64 -output SpeexKitv64.aar -d SpeexKitv64.a SpeexUnit.o———————
lipo -extract_family arm64e -output SpeexKitv64e.a SpeexKit.alipo -info SpeexKitv64e.alipo SpeexKitv64e.a -thin arm64e -output SpeexKitv64e.aar -d SpeexKitv64e.a SpeexUnit.o——————lipo -extract_family armv7 -output SpeexKitv7.a SpeexKit.alipo -info SpeexKitv7.alipo SpeexKitv7.a -thin armv7 -output SpeexKitv7.aar -d SpeexKitv7.a SpeexUnit.o———————lipo -extract_family armv7s -output SpeexKitv7s.a SpeexKit.alipo -info SpeexKitv7s.alipo SpeexKitv7s.a -thin armv7s -output SpeexKitv7s.aar -d SpeexKitv7s.a SpeexUnit.o———————lipo -create -output SpeexKit.a SpeexKitv64.a SpeexKitv64e.a SpeexKitv7.a SpeexKitv7s.a