android交叉编译c程序

1.交叉编译工具

arm-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

2.解压

tar -xavf arm-2012.03-57-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /home/snail/bin

3.配置

gedit ~/.bashrc

在文件末尾添加

 export PATH=~/bin/arm-2012.03/bin/:$PATH

4.测试

arm-none-linux-gnueabi-gcc -v
 

5.编写helloworld.c

#include <stdio.h>
int main()
{
	printf("helloworld!\n");
	return 0;
}


6.编译

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

7.查看

snail@ubuntu:~/work/android/cross-c/1.helloworld$ file helloworld
helloworld: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped

8.执行

adb push 1.txt sdc

ard/

D:\adb\adb>adb push C:\Users\Administrator\Desktop\helloworld bin

adb shell

 

# chmod 777 hello
chmod 777 hello
# ./hello
./hello
helloworld!
#

 

 

 

可能问题:

64位ubuntu无法使用32位编译器。出现:

error: arm-none-linux-gnueabi-gcc: No such file or directory  

 

解决:

sudo apt-get install    libc6:i386   libgcc1:i386  gcc-4.6-base:i386  libstdc++5:i386  libstdc++6:i386

你可能感兴趣的:(android交叉编译c程序)