美文网首页
静态库.a文件冲突解决

静态库.a文件冲突解决

作者: jgyhc | 来源:发表于2019-06-21 18:28 被阅读0次

项目里文件liblibWeex.a库引用了SDWebImage的文件,但是项目其他库也有使用到该库,冲突了!

解决方案

1、拆分liblibWeex.a 为四个liblibWeex_arm64.a liblibWeex_i386.a liblibWeex_armv7.a liblibWeex_x86_64.a强烈建议四个操作分开文件进行,这里拆分成 四个 .a文件的前提是原来的.a本身就支持上面四个架构版本:
查看.a支持架构

lipo -info 路径

例如:

lipo -info /Users/qing/Desktop/HelloSDK.framework/HelloSDK
lipo liblibWeex.a -thin arm64 -output liblibWeex_arm64.a

lipo liblibWeex.a -thin armv7 -output liblibWeex_armv7.a

lipo liblibWeex.a -thin i386 -output liblibWeex_i386.a

lipo liblibWeex.a -thin x86_64 -output liblibWeex_x86_64.a

建议创建4个文件夹,这里分别命名为:arm64armv7i386x86

2、cd到对应文件夹内,把拆分的.a文件再拆分成.o文件(分开文件夹进行)

ar -x liblibWeex_arm64.a

ar -x liblibWeex_armv7.a

ar -x liblibWeex_i386.a

ar -x liblibWeex_x86_64.a

拆分完成之后可以看到文件夹内多了很多.o的文件了

image.png

3、删掉冲突文件,这里删掉的文件较多,对比着SDWebImage进行删除!为了避免删错了,建议对照着SDWebImage库进行删除。
这里删掉的文件为:

UIImage+GIF.o
UIButton+WebCache.o
UIImage+MultiFormat.o
UIImageView+HighlightedWebCache.o
UIImageView+WebCache.o
UIView+WebCacheOperation.o
SDImageCache.o
SDWebImageCompat.o
SDWebImageDecoder.o
SDWebImageDownloader.o
SDWebImageDownloaderOperation.o
SDWebImageManager.o
SDWebImagePrefetcher.o
NSData+ImageContentType.o

4、将删掉冲突文件的.o文件合并:

libtool -static -o ../liblibWeex_arm64.a *.o

libtool -static -o ../liblibWeex_armv7.a *.o

libtool -static -o ../liblibWeex_i386.a *.o

libtool -static -o ../liblibWeex_x86_64.a *.o
image.png

5、将生成的.a文件合并成最初的.a文件

lipo -create -output liblibWeex.a liblibWeex_arm64.a liblibWeex_i386.a liblibWeex_armv7.a liblibWeex_x86_64.a

相关文章

  • 静态库.a文件冲突解决

    项目里文件liblibWeex.a库引用了SDWebImage的文件,但是项目其他库也有使用到该库,冲突了! 解决...

  • 解决iOS静态库文件冲突

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

  • lib(a)导致的duplicate symbol的问题

    链接: IOS lib(.a)库冲突解决办法 iOS 两个静态库存在同名文件冲突解决方案 说明 首先你要确定是这个...

  • 静态库冲突解决

    一、设置other linker flags参数 other linker flags作用 C代码到可执行文件经历...

  • Git(二)

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

  • duplicate symbol 的总结

    1.静态库冲突:解决方案:http://www.jianshu.com/p/7e78ee11e1e2 2.导入文件...

  • ld: library not found for -lstdc

    原因:XCode10+取消了内置lstdc++静态库 解决方案:下载对应静态库文件,导入XCode对应文件目录下。...

  • 解决静态库冲突问题

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

  • iOS 静态库.a冲突解决

    以前我是有过专门做SDK的经验,所以像这种sdk报错遇到的不少,如图有价值也很明显的问题点在于: 这种问题一般都是...

  • 解决静态库冲突问题

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

网友评论

      本文标题:静态库.a文件冲突解决

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