美文网首页
Android 减少编译三方静态库的体积

Android 减少编译三方静态库的体积

作者: __Y_Q | 来源:发表于2023-10-11 13:45 被阅读0次

最近使用 OSG 的项目要发版了, 但是编译 OSG 源码后的静态库实在是太大了, 网上找了很多资料, 都没办法.
未加入 OSG 静态库之前安装包为 60M左右. 加入后直接飙升到了 200M. 太恐怖了.
偶然间在网上看到一个帖子, 说是在使用NDK进行交叉编译的时候, Android NDKcmke 代码中开启了调试信息. 于是按照它的说明就去尝试关闭了一下, 然后重新编译 OSG. 最终生成安装包的大小比之前缩小了 50%. 也算是不错的成果了.
具体关闭方式如下:
找到 /Users/yaqi/Library/Android/sdk/ndk/21.1.6352462/build/cmake 目录下的 android.toolchain.cmake 文件. (这个目录也就是使用交叉编译时Android NDK 的目录).

打开 android.toolchain.cmake 后, 找到 454行.

list(APPEND ANDROID_COMPILER_FLAGS
  -g
  -DANDROID
  -fdata-sections
  -ffunction-sections
  -funwind-tables
  -fstack-protector-strong
  -no-canonical-prefixes)

-g 删掉然后编译 OSG 即可.

相关文章

  • 创建SDK

    一.IOS库简介 静态库与动态库 静态库:在编译的时候会被直接拷贝一份,复制到目标程序里。牺牲app体积来减少编译...

  • Mac下交叉编译android端静态库(.a)

    实际开发过程中,遇到编译android库时,用到的第三方静态库不是android平台的,因此需要自己编译静态库使用...

  • NDK 链接第三方静态库的方法

    将NDK编译的第三方静态拷贝到JNI目录下,在Android.mk中添加如下代码 以openssl静态库(libc...

  • Ndk生成so和a库,然后主项目进行调用

    在 NDK 开发中引入第三方静态库和动态库 静态库和动态库 静态库 静态库文件后缀一般为 .a ,利用静态库编译成...

  • 马哥linux培训第三天笔记

    文件系统 程序编译方式 动态编译 依赖系统共享库文件,节约内存资源 静态编译 体积大,依赖的库包含在程序内部 进程...

  • webrtc封装sdk(五)编译webrtc android遇到

    按照官方的编译步骤就可以编译出android版本的各个静态库libxxx.a当我们使用这些静态库,并且还需要编译自...

  • Mac下交叉编译iOS端静态库(.a)

    实际开发过程中,遇到编译iOS库时,用到的第三方静态库不是iOS平台的,因此需要自己编译静态库使用。下载第三库的源...

  • 编译FFmpeg静态库(*.a) for Android

    前篇文章Mac平台编译FFmpeg for Android写了如果编译FFmpeg动态库,如果想编译静态库也是非常...

  • iOS静态库制作的那些坑

    静态库本质是编译后的代码库,引用静态库可以有效减少项目的编译速度。一般来说,我们会选择对代码无依赖,功能相对独立的...

  • 拆分静态库.a文件

    问题描述:三方静态库和自己的工程共同包含同一个库,导致.o文件重复无法通过编译。解决思路:对三方静态库libx.a...

网友评论

      本文标题:Android 减少编译三方静态库的体积

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