Android NDK 交叉編譯

2021-06-18 08:05:48 字數 1078 閱讀 8998

2,根據ndk裡docs文件裡的standalone-toolchain.html來抽取交叉編譯的環境。

3,配置sysroot環境變數:  sysroot=$ndk/platforms/android-8/arch-arm //android-8是你的android開發版本所定

4,然後執行命令:

$ndk/build/tools/make-standalone-toolchain.sh --platform=android-18 --install-dir=~/androidtoolchain

~/androidtoolchain 是你交叉編譯環境的複製路徑。這個新生成的資料夾即是你的交叉編譯環境。

5,配置paht和cc環境變數:

export path=~/androidtoolchain:$path

export cc=arm-linux-androideabi-gcc

如果需要長久有效,在 ~/.bashrc 裡加上 export path=/..../bin:$path,其他的類似處理。

6,把你要需要編譯的 c 檔案放在以上生成的編譯環境的bin目錄下,例如:~/androidtoolchain/bin,進入這個目錄裡,輸入命令: $cc -o  hello hello.c (這相當於我們平時的 gcc 命令,只是這裡需要引用 arm 裡的庫,而不是x86裡的庫)

hello.c:

#include

#include

int main()

printf("hello,toolchain!/n");

return 0;

即生成了可在手機arm裡執行的可執行檔案hello

7,把這個可執行檔案hello放到手機裡的/data/目錄下,方法有很多,這裡介紹兩種:

一、把這個檔案放在電腦的某個目錄下,然後進入dos的這個目錄下,執行如下命令:adb push hello /data/

二、放在sdcard目錄下,然後執行cp /sdcard/hello /data/也可以

8,進入/data/目錄下,執行這個hello檔案,例如「./hello」,即可以在adb shell裡看到列印結果: hello,toolchain!

Android NDK編譯過程

最近在利用sse指令集完成beautyshot的x86架構的移植,工程在vs下優化完成後,需要對其在android ndk中進行編譯獲得庫檔案後,才能在終端裝置上執行,因為自己以前沒有從來沒有接觸過android相關的內容,所以感覺上手起來比較艱難,所幸有同事幫助,終於能夠利用android ndk...

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...