最近用cmake替代ndk-build编译so库,编译出来的so库打出很多,ndk-build编译的400k左右,cmake编译出的达到4.5M。

Gradle插件的版本是:gradle:3.0.0,gradle版本是:gradle-4.1-all.zip。

build.gradle cmake 配置如下:`

ndk {

abiFilters 'armeabi','armeabi-v7a','x86'

}

externalNativeBuild {

cmake {

arguments '-DANDROID_PLATFORM=android-21',

'-DANDROID_TOOLCHAIN=clang',

'-DCMAKE_BUILD_TYPE=Release'

targets 'myso'

}

}`

CMakeLists.txt 文件配置如下:

cmake_minimum_required(VERSION 3.4.1)

set (CMAKE_CXX_STANDARD 14)

set(CMAKE_VERBOSE_MAKEFILE ON)

add_library(so SHARED IMPORTED)

set_target_properties(

so

PROPERTIES IMPORTED_LOCATION

${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/so.so)

add_library(

myso

SHARED

XXX.cpp

.......

xxx.c

...

)

target_include_directories(myso PRIVATE

src

.....

)

find_library(

log-lib

log )

target_link_libraries(

myso

so

android

log

)

set(distribution_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../dis)

set_target_properties(myso

PROPERTIES

LIBRARY_OUTPUT_DIRECTORY

"${distribution_DIR}/lib/${ANDROID_ABI}")

我用as打开两个myso.so库对比了下里面的字符,前1000行是一样的,用cmake编译出来的1000行以后多出了很多东西,总共有两万多行,不知道是什么原因造成的。有了解的大神求指教,万分感谢!

cmake导入so库_cmake编译.so库体积非常大,求解答相关推荐

  1. cmake添加查找目录_CMake如何查找库路径(一)

    CMake如何查找库路径(一) 如果你的代码使用了外部库(external libraries),并且你事先不知道这些库的头文件和库文件在当前平台的位置.那么适当的文件夹路径和库的搜索路径就应该被添加 ...

  2. mysql.h 动态编译命令_Linux环境编译动态库和静态库总结

    对Linux环境动态库和静态库的一些基础知识做一些总结, 首先总结静态库的编译步骤. 1 先基于.cpp或者.c文件生成对应的.o文件 2将几个.o文件 使用ar -cr命令 生成libname.a文 ...

  3. Linux环境编译动态库和静态库总结

    首先总结静态库的编译步骤. 1 先基于.cpp或者.c文件生成对应的.o文件 2将几个.o文件 使用ar -cr命令 生成libname.a文件 libname.a 为静态库, name 为静态库的名 ...

  4. Makefile学习笔记07|编译静态库并通过ifeq语句

    Makefile学习笔记07|编译静态库并通过ifeq语句   希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢.   这里是目录   本篇与上一篇有较多联系,有兴趣的可以先看上一 ...

  5. vs2017编译boost库 ,解决无法打开文件“libboost_filesystem-vc140-mt-1_58.lib” 问题

    注:本文为工作问题记录,有些还未搞清楚原理,请见谅. 借鉴了网上分享的资料,感谢. 错误 LNK1104 无法打开文件"libboost_filesystem-vc140-mt-1_58.l ...

  6. 【Android NDK 开发】Ubuntu 函数库交叉编译 ( Android 动态库交叉编译 | Android 静态库交叉编译 )

    文章目录 I . Ubuntu 中交叉编译 Android 动态库 II . Ubuntu 中交叉编译 Android 静态库 I . Ubuntu 中交叉编译 Android 动态库 1 . 要编译 ...

  7. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  8. 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )

    文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...

  9. Android CMake 编译so库

    环境 Android Studio 3.0 JDK 1.8 Gradle 4.1 Demo地址: https://github.com/seeways/NDKDemo C++编译so库 创建项目 使用 ...

最新文章

  1. 干货丨一文带你玩转机器学习和深度学习
  2. git/gitee操作手册
  3. 串口服务器怎么测信号,串口服务器如何调试
  4. 神策数据受邀参加全国 APP 个人信息保护监管会
  5. hdu 1498(二分图最小顶点覆盖)
  6. 【好文收藏】k8s中Pod 无法正常解析域名:部署 DNS 调试工具排查
  7. LeetCode题库第2题 两数相加
  8. C++ 11 新特性
  9. java宠物商店管理系统
  10. AWVS使用教程与实例
  11. 解决Synology群晖VideoStation电影电视信息无法手动搜索
  12. 开源开放 | OpenKG组织发布第二批并更新近十个新冠知识图谱开放数据集
  13. android 发送短信的两种方式
  14. emi滤波matlab,EMI电源滤波器选型方法 浅析EMI电源滤波器及其原理介绍
  15. 实现加入购物车的功能
  16. Tomcat中 appBase和docBase配置及默认管理页面
  17. 大学物理第二章笔记——高等农林院校基础课程教程系列
  18. 语音识别(20201030)——麦克风阵列(采集语音信号)
  19. 基于Java的NetCDF文件解析
  20. 外文书籍的中文翻译版本作参考文献,文献引用格式

热门文章

  1. pylon 内存泄露的问题
  2. OpenCV_复制一个或多个ROI图像区域
  3. 编程之美——数字哑谜
  4. java 二维数组对角线_二维数组(矩阵)对角线输出
  5. verilog学习记(时序电路)
  6. 《统计学习方法》读书笔记——朴素贝叶斯法(公式推导+代码实现)
  7. php%3cimg src,XSS小游戏
  8. python线程安全_线程,线程安全与python的GIL锁
  9. js获取今天剩余时间_js动画,setTimeout/setInterval的不准确
  10. MySQL三种打开方式