1.在引入第三方静态库时,有时候会遇到,引入的库里面包含项目里已经有的第三方库,这时候编译的时候就会报文件重复的.o错误;这个时候有2中解决方案,一种是修改本项目的第三方库的名称;或者让提供第三方库的作者修改名称;第二种则是把提供的第三方库进行拆除然后把里面与我们相同的文件删除然后重新打包;今天研究的是第二种方法;
首先先进入静态库目录,执行lipo -info 静态库名称.a
查看文件的架构有哪些,比如:Architectures in the fat file: libzbar.a are: armv7 (cputype (12) cpusubtype (11)) i386
可以看到静态库中包含了三种cpu架构的.a文件 armv7 armv7s即(cputype (12) cpusubtype (11)) i386(模拟器)
2.将armv7解压出来
lipo 静态库名称.a -thin armv7(文件架构) -output 静态库名称输出名称.a
3.将静态库中的文件解压
ar -x ../AlipayRsaLib-armv7.a
4.合并完后进行打包.o文件了
libtool -static -o ../libnew-armv7.a *.o
5.合并静态库
lipo -create libnew-armv76.a libi386.a -output AlipayRsaLib.a
如果是单文件架构就可以直接解压,然后删除相关重复的.o文件然后进行合并操作就可以了