美文网首页iOS Developer
有关.a(静态库)冲突问题

有关.a(静态库)冲突问题

作者: 顺情风 | 来源:发表于2017-05-02 11:31 被阅读61次

有关怎么解决冲突的文章有很多,我这里在他们的基础上对一些新手解惑,怎么查看冲突。

1、查看报错:按照1、2、3、4顺序点击点击红色位置才可以查看到32个冲突的具体位置:

必须按照1、2、3、4顺序点击

2、按照1要求点击后就可以看到,具体冲突如下:

具体冲突

如上图所示:

每一个红色方框就是一条冲突信息,上面的方框说明了:libEZOpenSDK.a里面的mp2dec.o和libplayctrl.a里面的mp2dec.o重复了。也就是两个.a文件都引入了同一个.o文件。所以产生冲突。

3、冲突解决办法:

主要逻辑:把这两个.a文件“中的一个”.a文件,把.a文件生成对应架构的.a文件,然后把这个.a文件解压缩成.o文件,删除2里面看到的重复的.o文件。然后再把这个对应.o文件合成对应架构的.a文件,再把多个架构的.a文件合成一个.a文件。最后把项目里的.a文件替换成自己处理过的.a文件。

3.1、 查看architectures:      lipo  -info  libx.a

可以看到armv7/arm64等字眼。就说明这个libx.a包含了几种架构包。

3.2、 根据1里面含有几种架构包就执行相应命令

以armv7为例:lipo  libx.a  -thin armv7  -output  libx-armv7.a

在libx.a所在文件夹得到libx-armv7.a

3.3、 解压出.a文件所包含的.o文件:ar  xv  libx-armv7.a

可以看到libx-armv7.a所在文件夹出现了很多.o文件。把2中看到的需要删除的.0文件删除掉。

3.4、 再把这些.o文件打包成对应架构的.a文件:  ar  rcs   libx.a   *.o

3.5、 针对其它架构重复3.1到3.4,会得到多个架构的.a文件。

3.6、把多个架构的.a文件合成一个.a文件:  lipo  -create  Libarmv6.a  Libarmv7.a  -output  Lib.a

相关文章

  • 有关.a(静态库)冲突问题

    有关怎么解决冲突的文章有很多,我这里在他们的基础上对一些新手解惑,怎么查看冲突。 1、查看报错:按照1、2、3、4...

  • 静态库冲突 & Git (20)

    静态库冲突 & Git (20) 静态库冲突 冲突本质 -Objc 以及 -all_load 都没有问题, 都可以...

  • 解决iOS静态库文件冲突

    iOS 静态库冲突 两个不同的.o 文件冲突 ,静态库分离

  • MT MD 讲解

    (114条消息) 静态库、动态库、静态链接、动态链接、系统运行库混合、MD MT默认库冲突问题wxlfreewin...

  • 解决静态库冲突问题

    最近在写公司的智能家居项目时碰到静态库冲突问题,我和公司另外一个同事折腾了几天终于弄出来了, 太坑人..........

  • 解决静态库冲突问题

    问题 集成项目SDK的时候用到公司的两个静态库,在没有添加other link flags -ObjC之前,编译运...

  • iOS 解决.a 静态库冲突问题

    今天碰到恶心的libSBJSON.a(千度公司出品) 和ArcGIS 冲突了和它们聊过之后它们决定不改。那只有自己...

  • 静态库.a冲突

    查看包信息:lipo -info libx.a 如果提示fat file,那么代表这个包是支持多平台的,例如arm...

  • 静态库冲突

    后来反馈以后移除了相同文件,不需要了。总不能每次sdk出来,repeat yourself 以下是记录:以后不同第...

  • Git(二)

    一. 静态库符号冲突解决 1.1 链接同名静态库会不会冲突? 首先打开第一份工程LGTestApp,导入了AFNe...

网友评论

    本文标题:有关.a(静态库)冲突问题

    本文链接:https://www.haomeiwen.com/subject/sbrctxtx.html