美文网首页
Android静态库合并问题及解决办法

Android静态库合并问题及解决办法

作者: 禄眠 | 来源:发表于2021-02-28 15:30 被阅读0次

简介

最近在静态库合并上也踩坑了,真是头疼

存在的问题

合并库有两种方式:libtoolar,但是libtool一直合并失败

所以这里使用ar来合并

通常做法就是ar -xar -qc,但是因为涉及到合并交叉编译的库,所以这个ar命令一定不要用系统自带的,要使用ndk里的ar

就像下面这样:

android-ndk-r20b/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-ar -x libx.a
android-ndk-r20b/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-ar -x liby.a

android-ndk-r20b/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-ar -qc libnew.a *.o

就跟解压缩差不多

但是等合并完放到Android Studio中编译时却出错了:

error: undefined reference to 'xxx'
... ...

就很难受,还好找到了解决办法

解决办法

使用mri脚本进行合并操作

  1. 创建mri脚本

    create libnew.a
    addlib libx.a
    addlib liby.a
    save
    end
    

    保存为combine.mri

  2. 执行脚本

    android-ndk-r20b/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-ar -M <libaz.mri
    

这样就能够正常调用了

ar合并静态库

如果有什么问题或建议,欢迎留言~

相关文章

  • Android静态库合并问题及解决办法

    简介 最近在静态库合并上也踩坑了,真是头疼 存在的问题 合并库有两种方式:libtool和ar,但是libtool...

  • 如何制作静态库及合并静态库

    1.新建工程,选择如下: 2.新建的工程中会有两个文件XXX.h 和 XXX.m,在XXX.m中随便输入一段代码,...

  • Django教程03 模型(model)

    晓林网 自建博客学习问题及解决办法 红字 数据库设置 做网站就不能离开数据库,除非你是做静态网站。django中可...

  • iOS 静态库合并与静态库支持框架查询

    工作总结: 如何合并两个静态库? 终端命令: lipo -create 静态库1名 静态库2名 -output 新...

  • 合并静态库

    我们在工程自定义的静态库每次编译时会选择真机版本还是模拟器版本,每次编译只会生产其中的一个版本,所以为了能够同时支...

  • 静态库合并

    lipo -info xxx.a //查看架构 lipo -create 库1.a 库2.a 库3.a -out...

  • 合并.a静态库

    lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/ip...

  • 合并静态库

    lipo -create name1.a所在路径 name2.a所在路径 -output newname.a

  • 静态库相关

    1,查看一个静态库信息,XXX为静态库名称 lipo -info XXX 2,合并两个静态库 lipo -crea...

  • 科普 - 收藏集 - 掘金

    5 个 Android 开发中比较常见的内存泄漏问题及解决办法 - Android - 掘金在Android开发中...

网友评论

      本文标题:Android静态库合并问题及解决办法

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