1.搭建Cygwin,请先看我的另一篇博文的第二标题
http://www.cnblogs.com/tangjianke/archive/2011/09/27/2193324.html
2.搭建基于ARM的交叉编译环境
1.为什么?
Android是基于Linux的操作系统,处理器是ARM的,所以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。
2. 下载ARM交叉编译工具
我们选择使用CodeSourcery G++的在Windows平台免费的ARM交叉编译工具ARM EABI。可以去http://www.mentor.com/embedded-software/codesourcery下载,因为该网站更换连接较为频繁,这里不给出具体地址,在网站里找到。
然后下载windows版本的即可
3. 安装ARM交叉编译环境
1. 将EXE文件安装,我的安装路径(D:\Program Files\CodeSourcery\Sourcery G++ Lite)
2. 修改D:\Cygwin\home\jianke.tang\.bash_profile文件,将 CodeSourcery编译器的bin目录 (我的是D:\Program Files\CodeSourcery\Sourcery G++ Lite\bin) 加入你的PATH环境变量中
在文件末尾添加如下:
PATH=${PATH}:/cygdrive/D/Progra~1/CodeSourcery/Source~1/bin
export PATH
同时为了使用adb对模拟器进行编译需要将其所在的目录加入到PATH环境变量中。我的是(D:\Program Files\Android\android-sdk/platform-tools)
在文件末尾添加如下:
PATH=${PATH}:/cygdrive/D/Progra~1/Android/android-sdk/platform-tools
export PATH
3.大功告成,编译环境搭建完毕。
3. 这里我们写一个小的例子供大家参考
#include <stdlib.h> #include <stdio.h> int main(int argc, char** argv) { printf("Hello , Jian Ke\n"); return 0; }
1. 编译
保存为hello.c,保存位置为我的home目录,即D:\Cygwin\home\jianke.tang\中,用如下命令进行编译
$ arm-none-linux-gnueabi-gcc -static hello.c -o hello
注意,一定要加上static参数,否则编译好的可能会在Android上不能运行。
2. 启动Android模拟器,用如下命令将文件push到Android模拟器上:
先在模拟器上创建/dev/sample目录。
$ adb shell mkdir /dev/sample
然后将编译好的hello文件上传上去。
$ adb push hello /dev/sample/hello
最后将其改成可执行的文件。
$ adb shell chmod 777 /dev/sample/hello
3. 进入命令行模式,进入Android的shell环境:
$ adb shell
#cd /dev/sample
#./hello
4. 完成了,为了给大家有个直观的认识,我这里进入模拟器进行演示,在模拟器上打开Terminal Emulator.
5. 欢迎光临我的小店:gezikongjian.taobao.com
来源:https://www.cnblogs.com/tangjianke/archive/2011/10/09/2203780.html