构建NDK交叉编译链
有时我们需要单独编译个c文件,生成一个ELF在Android上面跑,NDK提供了一个 make-standalone-toolchain.sh 脚本,用于生成一套特定平台的交叉编译工具链
使用方法如下:
kiiim@ubuntu :~/aosp/android-ndk-r10d$ ./build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=~/ndk_arm_android21 --toolchain=arm-linux-androideabi-4.9 --system=linux-x86_64
Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying c++ runtime headers and libraries...
Copying files to: ~/ndk_arm_android21
Cleaning up...
Done.
简记一下参数设置:
–arch 选择目标平台,除了arm还有下面几种:
Toolchain Value
mips64 compiler --arch=mips64
mips GCC 4.8 compiler --arch=mips
x86 GCC 4.8 compiler --arch=x86
x86_64 GCC 4.8 compiler --arch=x86_64
mips GCC 4.8 compiler --arch=mips
–platform 设置Anroid API Level
–install-dir 指定生成的工具链目录
–toolchain 设置编译器环境,可以是GCC或者CLANG
Toolchain Value
arm
--toolchain=arm-linux-androideabi-4.8
--toolchain=arm-linux-androideabi-4.9
--toolchain=arm-linux-android-clang3.5
--toolchain=arm-linux-android-clang3.6
x86
--toolchain=x86-linux-android-4.8
--toolchain=x86-linux-android-4.9
--toolchain=x86-linux-android-clang3.5
--toolchain=x86-linux-android-clang3.6
mips
--toolchain=mips-linux-android-4.8
--toolchain=mips-linux-android-4.9
--toolchain=mips-linux-android-clang3.5
--toolchain=mips-linux-android-clang3.6
arm64
--toolchain=aarch64-linux-android-4.9
--toolchain=aarch64-linux-android-clang3.5
--toolchain=aarch64-linux-android-clang3.6
x86_64
--toolchain=x86_64-linux-android-4.9
--toolchain=x86_64-linux-android-clang3.5
--toolchain=x86_64-linux-android-clang3.6
mips64
--toolchain=mips64el-linux-android-4.9
--toolchain=mips64el-linux-android-clang3.5
--toolchain=mips64el-linux-android-clang3.6
–system 指定工作环境,比如在ubuntu 64位下,就指定linux-x86_64,其它平台还有:
Host toolchain Value
64-bit Linux -system=linux-x86_64
64-bit MacOSX -system=darwin-x86_64
64-bit Windows -system=windows-x86_64
参考:
https://developer.android.com/ndk/guides/standalone_toolchain.html
构建NDK交叉编译链的更多相关文章
- Linux Ubuntu下用Android NDK 生成独立交叉编译链
本文主要介绍使用Android NDK生成独立交叉编译链,然后使用独立交叉编译链编译Android程序 下载NDK 下载与自己操作系统相吻合的版本 下载地址 解压到安装目录(如~/myndk): ta ...
- 用Eclipse和GDB构建ARM交叉编译和在线调试环境
我们在 Linux 主机中搭建我们的开发环境,使用 Ubuntu 10.04 LTS 为例. 搭建应用开发环境 安装 JRE Eclipse 依赖于Java 环境,所以必须先安装 JRE 或 JD ...
- Android NDK 工具链的使用方法(Standalone Toolchain)
转载:http://blog.csdn.net/smfwuxiao/article/details/6587709 首先需要确定目标机器的指令集. 如果是 x86 的机器,用 x86-4.4.3 版本 ...
- ubuntu16.04安装交叉编译链
我使用的是arm-linux-gcc 4.3.2版本,其他版本类似,附上下载链接: https://pan.baidu.com/s/1geUOfab 密码: frzy 首先我的安装包是tar.bz2的 ...
- 一天一点Zynq(1)xilinx-arm-linux交叉编译链 安装总结以及资源更新
结束了对xilinx-arm-linux交叉编译链安装后,总结一下整个过程,方便后来的研究者们,少走点弯路. 关于xilinx-arm-linux交叉编译链的安装,网上一搜一大把,可是有的资料中的资源 ...
- Android NDK 交叉编译C++代码生成.so共享库详细步骤
Android NDK 交叉编译C++代码生成.so共享库详细步骤 Android NDK 调用c++ stl 模板库(修改android.mk文件) 1 在需要调用模板库的文件前包含头文件: ...
- 【原创】如何构建MIPS交叉编译工具链
运行环境:Ubuntu12.04PC提前安装库:flex,bison,libncureses5-dev,texinfo,这些库提前apt-get install.需要重新安装:gawk(先apt-ge ...
- Android学习——NDK交叉编译
原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 一. 环境1.GNU/Linux Ubuntu12.04操作系统(x86) 二. 下载NDK安装 ...
- Buildroot构建指南——工具链
Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软件.一般大家默认工具链等于gcc或者arm-linux-gcc,但是实际上,gcc只是工具链的编译器部分,不是全部,制作一个工 ...
随机推荐
- JavaScript中var和this定义变量的区别
JavaScript中var和this定义变量的区别 在js中声明变量时可以使用var和this,但使用this的有很大一部分参考书是没有的,经过查阅相关资料总结如下: 用var和this声明变量,存 ...
- 系统相关的信息模块: import sys
系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的 ...
- python字典和列表的高级应用
1.将序列分解为单独的变量 1.1问题 包含n个元素的元组或列表.字符串.文件.迭代器.生成器,将它分解为n个变量 1.2方案 直接通过赋值操作 要求:变量个数要等于元素个数 当执行分解操作时,有时需 ...
- 操作系统IIS安装
IIS在不同的操作系统的安装稍有些差异,如: 1.Windows XP 快捷安装IIS的话,推荐使用IIS一键安装程序包.或者找响应文件包i386,安装所需文件 2.Windows 7 安装IIS,则 ...
- Python version 2.7, which was not found in the registry
在安装部分Python包时会出现问题:明明已经安装了Python2.7,但无法在注册表相关位置找不到,那该怎么感觉该问题呢? 首先检查你的系统位数,位数不同,解决方案不一样. 1)32位系统:在cmd ...
- shell IF分支判断语句
单分支IF条件语句 if [ 条件判断式 ] then 程序: fi //结束的时候if反过来写 fi ----------------------------- /** * if test -d ...
- 序列(SEQUENCE)
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一 ...
- asp.net mvc 笔记一
webapi controller 中 action 名称 不能与 View controller 中的 action 名称相同,否则 Url.Action("actionName&quo ...
- django+xadmin+echarts实现数据可视化
使用xadmin后功能比较强大,在后台展示统计图表,这个需求真的有点烫手,最终实现效果如下图: xadmin后台与echarts完全融合遇到以下问题: 1.没有现成的数据model 2.获得指定时间段 ...
- SignalR NuGet程序包
最近公司有一个边看直播边聊天的需求,直播好搞,直接用腾讯的小直播,组装推流和播放地址,把推流地址拿出去就OK,只要一推流,就可以使用播放地址观看直播,看完后通过webclient去异步下载直播的视频到 ...