[英]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
上面顯示的環境變量使您可以使用configure
或make
來為指定的拱門構建第三方代碼。 您當然可以直接使用編譯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.