Cmake NDK交叉编译Android平台程序
当我们需要把我们的C++程序编译成Android平台的so库时,就需要用到交叉编译,有两种方法
目录
一:利用NDK进行编译
1.首先安装NDK
2.直接cmake,
二,独立的交叉编译工具链
1.安装独立的交叉编译工具链
2.makefile编译
自己使用的是方法一,直接用NDK的方法,方法二未尝试。
一:利用NDK进行编译
1.首先安装NDK
安装方法在: https://blog.csdn.net/u013171226/article/details/109572332
按照上面链接的步骤一安装NDK就好了,不要安装交叉编译工具链,
2.直接cmake,
利用cmake编译Android平台的程序时,只需要把X86平台的cmake ..修改为下面的格式:
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \-DANDROID_ABI="armeabi-v7a" \-DANDROID_NDK=$ANDROID_NDK \-DANDROID_PLATFORM=android-22 \..
上面的ANDROID_NDK是你安装NDK时的路径,然后上面的配置是armv7架构平台的,如果是armv8平台的就配置成arm64-v8a,其实我们可以在$ANDROID_NDK/build/cmake/android.toolchain.cmake文件中找到下面的内容:
if(ANDROID_ABI STREQUAL "armeabi-v7a with NEON")set(ANDROID_ABI armeabi-v7a)set(ANDROID_ARM_NEON TRUE)
elseif(ANDROID_TOOLCHAIN_NAME AND NOT ANDROID_ABI)if(ANDROID_TOOLCHAIN_NAME MATCHES "^arm-linux-androideabi-")set(ANDROID_ABI armeabi-v7a)elseif(ANDROID_TOOLCHAIN_NAME MATCHES "^aarch64-linux-android-")set(ANDROID_ABI arm64-v8a)elseif(ANDROID_TOOLCHAIN_NAME MATCHES "^x86-")set(ANDROID_ABI x86)elseif(ANDROID_TOOLCHAIN_NAME MATCHES "^x86_64-")set(ANDROID_ABI x86_64)elseif(ANDROID_TOOLCHAIN_NAME MATCHES "^mipsel-linux-android-")set(ANDROID_ABI mips)elseif(ANDROID_TOOLCHAIN_NAME MATCHES "^mips64el-linux-android-")set(ANDROID_ABI mips64)endif()
cmake之后就直接编译即可。
二,独立的交叉编译工具链
1.安装独立的交叉编译工具链
安装方法见: https://blog.csdn.net/u013171226/article/details/109572332
2.makefile编译
安装完交叉编译工具链之后,可以吧x86平台的makefile中的gcc修改为交叉编译工具链,然后进行编译。
Cmake NDK交叉编译Android平台程序相关推荐
- Mac下ndk交叉编译arm平台程序
1.下载ndk 2.使用ndk交叉编译exp.c <1>.编写:Makefile NDK_ROOT=/Users/xxx/Documents/Android_SDK/android-ndk ...
- android+程序崩溃,Android平台程序崩溃的类型及原因列举
Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的. 这里把Android平台程序崩溃的各种类型做一个简述和原因列举. 1.ANR(可见ANR): 发生场景 ...
- Android平台程序崩溃的类型及原因列举
Android平台程序崩溃大家都应该遇到过,force close和ANR应该是大家遇到较多的. 这里把Android平台程序崩溃的各种类型做一个简述和原因列举. 1.ANR(可见ANR): 发生场景 ...
- 利用 CMake 和 NDK 交叉编译 Android 下的可执行程序
为什么80%的码农都做不了架构师?>>> 之前开发 Android 下的二进制程序都是开个 jni 目录, 手写 Android.mk, 然后调用 ndk-build 生成可执 ...
- 【Android 安装包优化】p7zip 源码交叉编译 Android 平台可执行程序 ( 下载 p7zip 源码 | 交叉编译 Android 中使用 7z 可执行程序 )
文章目录 一.下载 p7zip 源码 二.交叉编译 Android 中使用 7z 可执行程序 三.参考资料 一.下载 p7zip 源码 下载 7zip 源码 , 下载页面 https://source ...
- 基于NDK编译Android平台的FFmpeg动态库
需求 FFmpeg在Linux平台(如Ubuntu)上的支持已经比较完善了,如前述文章介绍 http://blog.csdn.net/ericbar/article/details/73702061, ...
- Android平台Qt开发入门教程
很多人会问,Android平台可以不使用Java开发应用程序?? 我做Android平台native开发之前,也有这么想过,但是我又想,底层系统全是c/c++代码,用c/c++开发Android平台程 ...
- 米狗族 Android平台Qt开发入门教程
很多人会问,Android平台可以不使用Java开发应用程序?? 我做Android平台native开发之前,也有这么想过,但是我又想,底层系统全是c/c++代码,用c/c++开发Android平台程 ...
- 使用NDK20编译Android平台的ffmpeg
使用NDK编译Android平台的ffmpeg 编译环境 安装 编译 避坑 如何添加h264支持 编译环境 注意选择Linux版本的包下载 Ubuntu 16 下载 ndk20 下载 ffmpeg4. ...
最新文章
- VMWare中CentOS7 设置固定IP且能够访问外网
- IDEA坑爹跟新的小BUG解决之道
- 快速排序伪代码_数据结构和算法之快速排序
- 如何成为一个设计师和程序员混合型人才
- L1-010 比较大小(8行代码AC!!!)
- R中‘ts‘ object must have one or more observations
- client 连接 host —— 虚拟机
- Python(pycharm)在windows下路径 ( ' / ' 与' \ ' )的问题
- mavros 使用记录
- Zabbix安装图解教程
- HBase之HFile详解
- Cherry,你会喜欢这种手机!
- java通过smtp发送电子邮件
- Windows网上邻居 授权访问设置
- 2022年春招牛客网最热门的Java岗面试八股文汇总
- Canvas: trying to draw too large bitmap 红米 k30 奔溃
- jQuery-3.4.1下载
- 数论概论笔记 第3章 勾股数组与单位圆
- Bugku--散乱的密文
- python爬取携程网航班机票信息并存储到数据库中,2020年最新版本
热门文章
- c 语言单位转换编程,单位转换程序
- DDD为什么能火起来?和微服务有啥关系?
- maven强制刷新本地包:(用于打包后重新加载)
- 新品发布 | 极海半导体工业级互联型APM32F107/F105系列MCU,拓展通信外设助力产品应用创新
- Activiti 7.0 正式发布啦-Activiti Core 与 Activiti Cloud Beta1
- C++和Rust_自从尝了 Rust,Java 突然不香了
- 【 失踪人口回归】新·学期
- GeoGebra-一个功能类似于几何画板的开源绘图软件
- Centos7安装go1.14.4超级详细(两种安装方式)
- amule mldonkey