在Linux下交叉編譯Android工具鏈

2021-08-28 22:13:43 字數 3299 閱讀 7888

android ndk

linux 64-bit(x86)

,android-ndk-r9d-linux-x86_64.tar.bz2。

解壓android-ndk-r9d-linux-x86_64.tar.bz2

到任意路徑

3.生成

toolchain

的文件可以參考

docs/standalone-toolchain.html

3.1 

檢視android-ndk-r9d

支援的api 從

docs/stable-apis.html

可以看到如下,因為我們現在的平台

android

版本是4.2

所以選擇

android-17

。也可以從

platforms/

下去檢視支援

api版本

android-3      -> official android 1.5 system images

android-4      -> official android 1.6 system images

android-5      -> official android 2.0 system images

android-6      -> official android 2.0.1 system images

android-7      -> official android 2.1 system images

android-8      -> official android 2.2 system images

android-9      -> official android 2.3 system images

android-14     -> official android 4.0 system images

android-18     -> official android 4.3 system images

3.2

設定sysroot

環境變數

比如我解壓的路徑為

/home/***x/project/test/ndk/android-ndk-r9d

那麼設定

sysroot=/home/***x/project/test/ndk/android-ndk-r9d/platforms/android-17/arch-arm

3.3

生成toolchain

首先在android-ndk-r9d

裡新建生成

toolchain

的資料夾,

mkdir tmp/android-17-toolchain

執行如下命令:

/home/***x/project/test/ndk/android-ndk-r9d/build/tools/make-standalone-toolchain.sh --platform=android-17 --install-dir=/home/***x/project/test/ndk/android-ndk-r9d/tmp/android-17-toolchain

這樣就在

android-17-toolchain

下生成交叉編譯工具。 4.

配置交叉編譯工具環境變數 我把

android-17-toolchain

放在/home/***x/document下

sudo gedit ~/.bashrc

在最後新增如下命令

export path=$path:/home/***x/document/android-17-toolchain/bin

source ~/.bashrc 5.

測試環境變數設定是否生效

arm-linux-androideabi-gcc -v

最後有獲取到

gcc version 4.6 20120106 (prerelease) (gcc)

就可以了 6.

編譯c程式

arm-linux-androideabi-gcc -o main main.c

opus

音訊編譯碼庫是

speex

音訊編譯碼庫的下一代版本,從編譯碼效能以及質量上來講都有了長足的進步。

opus

的編譯非常簡單,但是官方並未給出詳細的

android

版本編譯指南,查詢了大量資料,經過多次試驗,總結了一套成功的方法,具體如下:

1. 確保你的機器上安裝有

android ndk

opus

源**。

2. android ndk

因為包含了針對多個

android

系統版本(

api level

)的編譯器工具鏈檔案,但是並未直接提供乙個具體可用的工具鏈,因此需要借助

ndk

生成一套編譯器工具鏈,前提是你必須要指定該工具鏈所針對的具體

android

系統版本,這裡以

api level 14

(對應android 4.0

)為例,生成針對它的編譯器工具鏈,使用如下命令:

~/android-ndk-r10e/build/tools/make-standalone-toolchain.sh --platform=android-14 --install-dir=/tmp/my_toolchain

3. 定義環境變數,用於臨時的編譯,使用如下命令:

export path=/tmp/my_toolchain/bin/:$path

export cc=arm-linux-androideabi-gcc

export cxx=arm-linux-androideabi-g++

4. 配置並建立

opus

源**的

makefile

編譯配置檔案,使用如下命令:

./configure --host=arm-linux-androideabi

5. 編譯opus

源**並生成庫檔案,使用如下命令:

make

注意,make

命令將自動編譯源**並生成庫檔案(靜態庫及動態庫),庫檔案位於

opus

源**所在目錄中的某個子目錄內,可能該子目錄名字以

「.」開頭,所以可以用

ls -a

命令來檢視一下。因為這裡我們編譯的是

for android

的版本,所以我們不要再執行

make install

了。

QT在linux下的交叉編譯

第一步 安裝交叉編譯器 將arm linux gcc v6 vfp 20101103.tgz拷到到 opt下,然後輸入以下命令進行解壓 cd tar xvzf opt arm linux gcc v6 vfp 20101103.tgz 交叉編譯器會解壓到 opt friendlyarm toolsc...

golang在win下交叉編譯

1 安裝 必須安裝git 和 mingw 2 設定環境變數 系統path變數 新增c mingw bin c program files git bin 3 執行批處理 將以下存放在install.bat 放於 go src下執行 4 執行go編譯 下面是編譯乙個linux下執行的 echo off...

linux 下 openssl 編譯和交叉編譯

此隨便記錄一下編譯openssl時遇到的各種問題以及解決辦法。linux 64位系統編譯32位版本 setarch i386 configure linux generic32 no shared m32 setarch i386 make setarch i386 make install mak...