NDK交叉編譯之自定義工具鏈

本機(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)行交叉編譯

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評(píng)論 25 708
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,290評(píng)論 6 342
  • 在Android NDK開發(fā)中,有兩個(gè)重要的文件:Android.mk和Application.mk,各盡其責(zé),指...
    f9dd77add98e閱讀 14,341評(píng)論 6 15
  • 這是前幾天群里發(fā)的一個(gè)話題,你看到這張圖有什么想法? 男人來自火星,女人來自金星。溝通的方式正確了,關(guān)系自然融洽,...
    趙慧姿閱讀 393評(píng)論 4 2

友情鏈接更多精彩內(nèi)容