博客
关于我
Ubuntu16.04下安装Android机顶盒(Android4.4.2)NDK交叉编译环境
阅读量:90 次
发布时间:2019-02-26

本文共 1549 字,大约阅读时间需要 5 分钟。

Ubuntu16.04下安装Android机顶盒(Android4.4.2)NDK交叉编译环境


文章目录

一、前言

Android NDK 是一个工具集,可让您使用 C 和 C++ 等语言以原生代码实现应用的各个部分。对于特定类型的应用,这可以帮助您重复使用以这些语言编写的代码库。

关于ndk更多的内容可以在这里了解:

https://developer.android.google.cn/ndk

我这里主要是为了编译在Android机顶盒上跑的so库来做准备的。

宿主机:Ubuntu16.04 64位

目标机:Android4.4.2电视机顶盒

二、ndk下载

https://developer.android.google.cn/ndk/downloads

在这里下载最新版以及旧版本,也可以找开发板提供商要适合其版本的kit。

比如我这里有个r10版本的ndk:

链接:https://pan.baidu.com/s/1hlAwmfWuyZNIjQxCN6dF5A

提取码:kzig

三、ndk安装

下载下来后直接解压到某个位置即可,我这里以我的r10为例,安装到/opt/android目录下。

sudo -smkdir /opt/androidcp ~/share/android-ndk-r10.tar.gz /opt/android/cd /opt/androidtar zxvf android-ndk-r10.tar.gz

四、配置环境变量

我这里修改了两个位置:

/etc/profile和~/.bashrc

注意:理论上修改/etc/profile即可,但是我修改完后当前用户未生效而仅仅root用户生效了,所以我又修改了~/.bashrc。

vi /etc/profile或vi ~/.bashrc

在末尾添加

#set NDK envexport NDKROOT=/opt/android/android-ndk-r10export PATH=$NDKROOT:$PATH

之后

source /etc/profile

使得环境变量生效即可。

对于.bashrc该脚本则是针对当前用户的,所以不能在root用户下执行,需要在你当前用户下执行:

source ~/.bashrc

使得环境变量生效后再运行ndk-就可以补全了。

对于指定交叉编译工具链的位置暂时我们不添加到环境变量中,你也可以根据自己的需要添加对应的环境变量指定你需要的交叉编译工具链的位置。

五、测试使用

使用

ndk-

后tab补全来确认,结果如下:

zy@zy-virtual-machine:~$ ndk-ndk-build       ndk-gdb         ndk-gdb-py.cmd  ndk-build.cmd   ndk-gdb-py      ndk-stack       ndk-depends     ndk-gdb.py      ndk-which

这说明安装成功并且环境变量起效了,通过$PATH可以找到对应的可执行程序。

那么添加交叉编译工具链的位置的环境变量同样能够生效。

其实不指定环境变量直接使用绝对路径获取交叉编译工具链也是可以的,但是这样写编译脚本时就相对麻烦一些,比如在cmake中指定c交叉编译器就要写:

set(CMAKE_C_COMPILER /usr/local/android-ndk-r10/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc)

这样太长了,而且换台设备工具链位置换了的话通用性就显得稍微差一些。

转载地址:http://oykz.baihongyu.com/

你可能感兴趣的文章
MySQL 索引的面试题总结
查看>>
mysql 索引类型以及创建
查看>>
MySQL 索引连环问题,你能答对几个?
查看>>
Mysql 索引问题集锦
查看>>
Mysql 纵表转换为横表
查看>>
mysql 编译安装 window篇
查看>>
mysql 网络目录_联机目录数据库
查看>>
MySQL 聚簇索引&&二级索引&&辅助索引
查看>>
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>
MySQL 设置数据库的隔离级别
查看>>
MySQL 证明为什么用limit时,offset很大会影响性能
查看>>