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

来源:互联网 发布:迪蒙网贷系统源码 编辑:程序博客网 时间:2024/05/22 02:00

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

本机OS: Ubuntu 14.04 x64
  • 1

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

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

ArchitectureToolchain nameARM-basedarm-linux-androideabi-<gcc-version>x86-basedx86-<gcc-version>MIPS-basedmipsel-linux-android-<gcc-version>ARM64-basedaarch64-linux-android-<gcc-version>X86-64-basedx86_64-<gcc-version>MIPS64-basedmips64el-linux-android--<gcc-version>

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

ToolchainValuemips64 compiler--arch=mips64mips GCC 4.8 compiler--arch=mipsx86 GCC 4.8 compiler--arch=x86x86_64 GCC 4.8 compiler--arch=x86_64mips GCC 4.8 compiler--arch=mips

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

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

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

Host toolchainValue64-bit Linux-system=linux-x86_6464-bit MacOSX-system=darwin-x86_6464-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-r10eplatform=android-21shmake=$NDK_HOME/build/tools/make-standalone-toolchain.sharchs=(    '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_HOMEnum=${#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

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

原创粉丝点击