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