本機(jī)OS: Ubuntu 14.04 x64
首先上官方文檔
https://developer.android.com/ndk/guides/standalone_toolchain.html
可以自定義工具鏈進(jìn)行交叉編譯
1.對(duì)不同的指令集APP_ABI設(shè)置
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.工具鏈和相應(yīng)的值,使用--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.工具鏈和相應(yīng)的值,使用--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 |
主機(jī)工具鏈和相應(yīng)的值,使用-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
上面演示的僅僅是單一的arm工具鏈
可以根據(jù)自己的需要獨(dú)立配置
不過相應(yīng)的arch和對(duì)應(yīng)的toolchain要對(duì)應(yīng)
可以寫個(gè)Shell腳本處理make_toolchain.sh
在開頭配置好相應(yīng)的路徑,和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
運(yùn)行
sh make_toolchain.sh


交叉編譯的工具鏈配置完成,方便后續(xù)進(jìn)行交叉編譯