Android學習——NDK交叉編譯


原創作品,轉載請注明出處,嚴禁非法轉載。如有錯誤,請留言!

email:40879506@qq.com

 一. 環境
1.GNU/Linux Ubuntu12.04操作系統(x86)

二. 下載NDK安裝包

下載NDK,根據NDK里docs文檔里的standalone-toolchain.html來抽取交叉編譯的環境。

三. 制作交叉編譯工具鏈

配置環境變量末尾添加如下三行

vi /etc/profile

1 export NDK=/opt/cross_tool/android-ndk-r10d
2 export NDK_CROSS=/opt/cross_tool/AndroidToolChain/bin
3 PATH=$PATH:$NDK:$NDK_CROSS

 保存后重啟環境

source /etc/profile

執行命令:$NDK/build/tools/make-standalone-toolchain.sh --platform=android-19 --arch=arm --install-dir=/opt/cross_tool/AndroidToolChain/

1 # $NDK/build/tools/make-standalone-toolchain.sh --platform=android-19 --arch=arm --install-dir=/opt/cross_tool/AndroidToolChain/
2 Auto-config: --toolchain=arm-linux-androideabi-4.8
3 Copying prebuilt binaries...
4 Copying sysroot headers and libraries...
5 Copying c++ runtime headers and libraries...
6 Copying files to: /opt/cross_tool/AndroidToolChain/
7 Cleaning up...
8 Done.

如上圖說明已經部署好交叉編譯環境。

其中$NDK環境變量是NDK的安裝路徑,選項--platform指定Android版本的開發形式,對應版本4.4.2 API。--arch指定目標執行的架構。--install-dir指定這個新生成的文件夾即是你的交叉編譯環境,和其他交叉編譯工具鏈使用方法類似。

四. 編寫測試程序和編譯

編譯C程序hello.c

1 #include <stdio.h>
2 int main()
3 {
4     printf("hello,JNI!!!! Android 4.4\n");
5     return 0;
6 }

使用命令:

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

即生成了可在手機arm里運行的可執行文件hello。

五. 使用Window下的模擬機測試

把hello程序拷貝到Android的SDK平台下的測試目錄,我這里創建了一個test目錄。(你也可以配置window下的環境變量,在任意目錄下使用adb命令)

用adb命令把hello程序放到模擬機的/system/bin目錄並執行。測試圖如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM