引用:http://blog.sina.com.cn/s/blog_4a0a39c30100auh9.html

Android是基于Linux的操作系统,处理器是ARM的,所以要在Linux或Windows等x86系统上编译Android能运行的程序,你需要一个交叉编译器。

在Linux下面,你可以自已编译一个交叉编译环境,但Windows下面,就比较复杂(也可以在cygwin中编译一个),但你可以选择下载一个现成的交叉编译环境:

http://www.codesourcery.com/gnu_toolchains/arm/download.html

Windows: http://www.codesourcery.com/gnu_toolchains/arm/portal/package3400/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.exe

Linux: http://www.codesourcery.com/gnu_toolchains/arm/portal/package3399/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.bin

安装好了之后,将 CodeSourcery编译器的bin目录 (我的是D:\Program Files\CodeSourcery\Sourcery G++ Lite\bin) 加入你的PATH环境变量中,就可以开始你的Android Native C开发之旅了,写好一个简单的C程序:

#include <stdlib.h>

int main(int argc, char** argv) {
 printf("hello android!\nI'm %s!\nI like android very much!!!\n", "Martin Foo");
 
 return 0;
}

另存成hello.c,进入命令行模式,确保交叉编译器的bin目录,及Android SDK的tools目录在你的系统环境变量的path里面,用如下命令编译:

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

注意,一定要加上static参数,否则编译好的可能会在Android上不能运行。

启动Android模拟器,用如下命令将文件push到Android模拟器上:

adb shell mkdir /dev/sample
adb push hello /dev/sample/hello

adb shell chmod 777 /dev/sample/hello

先创建 /dev/sample目录,再将编译好的hello上传上去,最后将hello改成可执行的。

再进入命令行模式,进入Android的shell环境:

adb shell

最新文章

  1. JS数组常用函数以及查找数组中是否有重复元素的三种常用方法
  2. 数据库——JDBC
  3. [Effective JavaScript 笔记]第54条:将undefined看做“没有值”
  4. Python爬虫之豆瓣-新书速递-图书解析
  5. Ubuntu 16.04 下卸载 lnmp/lamp 方法
  6. cocos2d-x3.0 windows 环境配置
  7. 现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)
  8. [Thinkbayes]贝叶斯思维读书笔记-1-贝叶斯定理
  9. JQuery 常用的那些东西
  10. docker镜像导入导出
  11. wangEditor更改默认高度
  12. lua 的语法糖
  13. aiohttp的笔记之TCPConnector
  14. Java中的集合迭代器
  15. SharePoint 2013 Step by Step——使用自定义的List Template
  16. 杂项:Nuget
  17. 主打安全 阿里巴巴联合公安部打造PMOS
  18. python---django的模块简便使用
  19. 跨库查询(OpenDataSource)与链接服务器(Linking Server)
  20. MySQL中特有的函数CONV函数

热门文章

  1. 【python+mysql】在python中调用mysql出问题 ImportError: No module named MySQLdb.constants
  2. hdu 5122
  3. jqgrid 中的事件
  4. python3 抓取网页资源的 N 种方法
  5. &lt;meta&gt;指定浏览器模式(browser mode)或文档模式(document mode)无效
  6. android删除无用资源文件的python脚本
  7. Linux防火墙配置(iptables, firewalld)
  8. Linux下安装性能测试负载机LG
  9. C#发送邮件时提示:“不允许使用邮箱名称。服务器响应为:”的错误解决办法
  10. RSA+DES动态加密