Cross compiling static C hello world for Android using arm-linux-gnueabi-gcc Cross compiling static C hello world for Android using arm-linux-gnueabi-gcc c c

Cross compiling static C hello world for Android using arm-linux-gnueabi-gcc


Try specifying the architecture/cpu. It sounds like the compiler is creating code with a higher architecture version than the emulator can handle.

This might work:

arm-linux-gnueabi-gcc -static -march=armv5 hi.c -o hi


It worked for me with CodeBench compiler on ubuntu desktop. https://sourcery.mentor.com/sgpp/lite/arm/portal/release2029

Just create a static binary with this command:

arm-none-linux-gnueabi-gcc -o hello -static hello.c

then push it to phone

adb push hello /data/local/tmp

go run it:

adb shell$ chmod 755 /data/local/tmp/hello$ /data/local/tmp/hello

This will print Hello World on terminal. Same can be done from phone also. Use terminal emulator or SL4A bash shell to execute.


If I do this on a Debian machine (VM in my case), all seems well. I am not sure what when wrong with doing similar on ubuntu. It could be as Leo suggested, but I cannot confirm. This should work for you though.

http://www.cnx-software.com/2012/01/16/installing-emdebian-arm-cross-toolchain-in-debian/

Someone added this link, but it is not using the toolchain I mentioned in the description. Leaving it in case anyone is interested.

http://tariqzubairy.wordpress.com/2012/03/09/arm-binaries-static-library-for-android/