我想在Android上运行一个"hello world"程序。
它是用C写的,我尝试了不同的交叉编译器。
arm-elf-gcc:当我输入"。/你好"在我的手机上与adb我得到一个"分割故障"。但是,arm- self -gdb正常运行hello程序,没有出现分段错误。
arm-linux-gcc:当我输入"。在我的手机上,我收到了"非法指令"
关于如何在手机上运行我的程序有什么想法吗?
本教程似乎很好地解释了如何为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:/home/<user>
/android-ndk
/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