交叉编译-如何在Android平台上运行arm二进制文件



我想在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

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

相关内容

  • 没有找到相关文章

最新更新