多个.a 文件包含相同类问题

问题   iOS   多个.a文件  包含了相同的类文件  假设是AA.a文件和BB.a文件

报错  duplicate symbol _xxx in

解决方法

步骤1、将AA.a包分别按照不同的架构(armv7、armv7s、arm64)得到对应的瘦身后的.a库文件

lipo AA.a -thin arm64 -output AA-arm64.a


步骤2、按照不同架构中的某个架构的.a解压    新建文件夹cd到对应的文件夹后解压上级目录下上个步骤得到的.a库文件会得到.o的目标文件

ar -x ../AA-arm64.a


步骤3、重复上面两步把BB.a  文件也按照不同的架构解压,在不同文件夹下面得到对应的.o的目标文件


步骤4、把AA-arm64.a和BB-arm64.a架构瘦身解压后得到的.o文件  进行合并(全选其中一个文件夹,复制到另一个区   肯定会有相同的.o文件)


步骤5、把合并后的.o文件夹里面的所有文件生成新的.a文件(这是就可以测试了,上述步骤没有问题的话就可以用5s以上的机型跑了)

libtool -static -o ../new-arm64.a *.o


步骤6、合并步骤5得到的不同架构下面的新的.a文件  (最后使用new.a   把armv7、armv7s、arm64、i386都进行合并)

lipo -create new-arm64.a  new-armv7.a  -output new.a

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,822评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 在移动开发过程中,如果一个工程需要接入很多第三方sdk ,那么一个工程可能有好多个.a库。这么多个.a文件,能不能...
    zhaihongxia阅读 1,633评论 0 0
  • 还是喜欢小时候村里花草树木的味道 奶奶饭菜的味道 晒的被褥有太阳的味道 院子里的猫儿也没有烦恼 那时候多好 没有烦...
    魔赐酷呆阅读 334评论 0 0
  • 一:思维,只是一道限制你的墙。 二:千万千万别太在意精神病人说的话,别深想他们告诉你的世界观,否则你迟早也会疯的。...
    Sun_794c阅读 1,274评论 0 0