簡體   English   中英

在Android上運行C代碼而無需編譯整個樹

[英]Run C code on Android without compiling the entire tree

我有一個C代碼,想添加到Android C庫中。

當我編譯整個Android樹時,我可以構建並執行coed。
我希望能夠將代碼添加到現有的已編譯android環境中。 即要使用內置設備並僅將我的應用程序推送並在那里執行它。

我成功使用NDK在Windows平台上為Linux編譯了我的代碼,並使用adb push命令將其adb push

嘗試使用adb execute

我收到以下錯誤:

[Android]無法執行:magic = 7F45

Magic 7F45表示二進制文件是Linux ELF ,並且未編譯為ARM架構(您可以使用file找出哪個架構)。 您需要使用NDK創建獨立的工具鏈,然后使用它來構建正確的二進制文件。

以下是您如何通過android dev網站進行此操作的主要詳細信息:

NDK允許您創建“自定義”工具鏈安裝,以簡化工作。 例如,考慮以下命令:

$NDK/build/tools/make-standalone-toolchain.sh --platform=android-5 --install-dir=/tmp/my-android-toolchain 

這將創建一個名為/ tmp / my-android-toolchain的目錄,其中包含android-5 / arch-arm sysroot和工具鏈二進制文件的副本。

請注意,默認情況下,腳本將選擇基於ARM的工具鏈。
使用'--arch = x86'選項指定基於x86的選項,
使用“ --arch = mips”選項來指定基於MIPS的選項,或者使用“ --toolchain =”。

您以后可以將其直接用於以下內容:

export PATH=/tmp/my-android-toolchain/bin:$PATH 
export CC=arm-linux-androideabi-gcc

上面顯示的環境變量使您可以使用configuremake來為指定的拱門構建第三方代碼。 您當然可以直接使用編譯器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM