2011-07-19 81 views
1

我想在Android上運行「hello world」程序。如何在Android平臺上運行arm二進制文件?

它用C編寫,我嘗試了不同的交叉編譯器。

arm-elf-gcc:當我在我的手機上提示「./hello」時,我有「分段錯誤」 但是,arm-elf-gdb正常運行hello程序,沒有分段錯誤。

ARM-Linux的GCC:當我小費 「./hello」 我的電話, 「非法指令」

任何想法呢?

回答

2

首先,確保你有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 
相關問題