我想在Android上運行「hello world」程序。如何在Android平臺上運行arm二進制文件?
它用C編寫,我嘗試了不同的交叉編譯器。
arm-elf-gcc:當我在我的手機上提示「./hello」時,我有「分段錯誤」 但是,arm-elf-gdb正常運行hello程序,沒有分段錯誤。
ARM-Linux的GCC:當我小費 「./hello」 我的電話, 「非法指令」
任何想法呢?
我想在Android上運行「hello world」程序。如何在Android平臺上運行arm二進制文件?
它用C編寫,我嘗試了不同的交叉編譯器。
arm-elf-gcc:當我在我的手機上提示「./hello」時,我有「分段錯誤」 但是,arm-elf-gdb正常運行hello程序,沒有分段錯誤。
ARM-Linux的GCC:當我小費 「./hello」 我的電話, 「非法指令」
任何想法呢?
本教程似乎可以解釋得很好如何建立和Android的調試本機C應用: http://betelco.blogspot.com/2010/01/buildingdebugging-android-native-c.html
首先,確保你有NDK:
http://developer.android.com/tools/sdk/ndk/index.html
這是最簡單的方式爲您的手機編譯C二進制文件:
http://developer.android.com/tools/sdk/ndk/index.html
http://www.kandroid.org/ndk/docs/STANDALONE-TOOLCHAIN.html
通常$ NDK(可能不同)=
的Linux:
/家庭/ <user>
/Android的NDK
的Mac OS X:
/Users/<user>
/android-ndk
終端:
# create tool-chain - one line
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-3 --install-dir=/tmp/my-android-toolchain
# add to terminal PATH variable
export PATH=/tmp/my-android-toolchain/bin:$PATH
# make alias CC be the new gcc binary
export CC=arm-linux-androideabi-gcc
# compile your C code(I tried hello world)
$CC -o foo.o -c foo.c
# push binary to phone
adb push foo.o /data/local/tmp
# execute binary
adb /data/local/tmp/foo.o