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

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 -s
mkdir /opt/android
cp ~/share/android-ndk-r10.tar.gz /opt/android/
cd /opt/android
tar zxvf android-ndk-r10.tar.gz

四、配置环境变量

我这里修改了两个位置:
/etc/profile和~/.bashrc

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

vi /etc/profile
或
vi ~/.bashrc

在末尾添加

#set NDK env
export NDKROOT=/opt/android/android-ndk-r10
export 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)

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称系统有问题

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值