Android NDK自定义交叉编译工具链

简书排版 
http://www.jianshu.com/p/3bbad4b1b099

本机OS: Ubuntu 14.04 x64
 
 
  • 1

首先上官方文档 
https://developer.android.com/ndk/guides/standalone_toolchain.html 
可以自定义工具链进行交叉编译

1.对不同的指令集APP_ABI设置

Architecture Toolchain name
ARM-based arm-linux-androideabi-<gcc-version>
x86-based x86-<gcc-version>
MIPS-based mipsel-linux-android-<gcc-version>
ARM64-based aarch64-linux-android-<gcc-version>
X86-64-based x86_64-<gcc-version>
MIPS64-based mips64el-linux-android--<gcc-version>

2.工具链和相应的值,使用–arch

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

3.工具链和相应的值,使用–toolchain

Toolchain Value
arm --toolchain=arm-linux-androideabi-4.8
arm --toolchain=arm-linux-androideabi-4.9
arm --toolchain=arm-linux-android-clang3.5
arm --toolchain=arm-linux-android-clang3.6
x86 --toolchain=x86-linux-android-4.8
x86 --toolchain=x86-linux-android-4.9
x86 --toolchain=x86-linux-android-clang3.5
x86 --toolchain=x86-linux-android-clang3.6
mips --toolchain=mips-linux-android-4.8
mips --toolchain=mips-linux-android-4.9
mips --toolchain=mips-linux-android-clang3.5
mips --toolchain=mips-linux-android-clang3.6
arm64 --toolchain=aarch64-linux-android-4.9
arm64 --toolchain=aarch64-linux-android-clang3.5
arm64 --toolchain=aarch64-linux-android-clang3.6
x86_64 --toolchain=x86_64-linux-android-4.9
x86_64 --toolchain=x86_64-linux-android-clang3.5
x86_64 --toolchain=x86_64-linux-android-clang3.6
mips64 --toolchain=mips64el-linux-android-4.9
mips64 --toolchain=mips64el-linux-android-clang3.5
mips64 --toolchain=mips64el-linux-android-clang3.6

主机工具链和相应的值,使用-system

Host toolchain Value
64-bit Linux -system=linux-x86_64
64-bit MacOSX -system=darwin-x86_64
64-bit Windows -system=windows-x86_64

自定义

#NDK_HOME为安装路径
export NDK_HOME=/workspace/android-ndk-r10e
$NDK_HOME/build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=$HOME/android-toolchain --toolchain=arm-linux-androideabi-4.9
 
 
  • 1
  • 2
  • 3

上面演示的仅仅是单一的arm工具链 
可以根据自己的需要独立配置 
不过相应的arch和对应的toolchain要对应

可以写个Shell脚本处理make_toolchain.sh 
在开头配置好相应的路径,和platform即可


export NDK_HOME=/workspace/android-ndk-r10e


platform=android-21
shmake=$NDK_HOME/build/tools/make-standalone-toolchain.sh

archs=(
    'arm'
    'arm64'
    'x86'
    'x86_64'
    'mips'
    'mips64'
)

toolchains=(
    'arm-linux-androideabi-4.9'
    'aarch64-linux-android-4.9'
    'x86-4.9'
    'x86_64-4.9'
    'mipsel-linux-android-4.9'
    'mips64el-linux-android-4.9'
)

echo $NDK_HOME
num=${#archs[@]}
for ((i=0;i<$num;i++))
do
   sh $shmake --arch=${archs[i]} --platform=$platform --install-dir=$HOME/android-toolchain/${archs[i]} --toolchain=${toolchains[i]}
done
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

运行

sh make_toolchain.sh
 
 
  • 1

交叉编译的工具链配置完成,方便后续进行交叉编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值