Android原生(Native)C开发之一(备份测试代码的编译命令)
来源:互联网 发布:淘宝零成本赚钱机6.0 编辑:程序博客网 时间:2024/06/16 07:22
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) { arm-none-linux-gnueabi-gcc -static hello.c -o hello 注意,一定要加上static参数,否则编译好的可能会在Android上不能运行。 启动Android模拟器,用如下命令将文件push到Android模拟器上: adb shell mkdir /dev/sample adb shell chmod 777 /dev/sample/hello 先创建 /dev/sample目录,再将编译好的hello上传上去,最后将hello改成可执行的。 再进入命令行模式,进入Android的shell环境: adb shell #cd /dev/sample #./hello 进入 /dev/sample目录,执行hello,运行结果如下图:
printf("hello android!/nI'm %s!/nI like android very much!!!/n", "Martin Foo");
return 0;
}
另存成hello.c,进入命令行模式,确保交叉编译器的bin目录,及Android SDK的tools目录在你的系统环境变量的path里面,用如下命令编译:
adb push hello /dev/sample/hello
- Android原生(Native)C开发之一(备份测试代码的编译命令)
- Android原生(Native)C开发之一:环境搭建篇
- 【转】Android原生(Native) C开发之一 环境搭建篇
- Android原生(Native)C开发:编译选项小结
- Android原生(Native)C开发
- Android原生(Native)C开发
- Android原生(Native)C(JNI/NDK)开发之一:环境搭建篇
- 转帖:Android原生(Native)C开发
- Android原生(Native)C开发 -- framebuffer篇
- Android原生(Native)C开发之三
- Android原生(Native)C开发之二:framebuffer篇
- Android原生(Native)C开发之四:SDL移植笔记
- Android原生(Native)C开发之五:zlib移植笔记
- Android原生(Native)C开发之六:libpng移植笔记
- Android原生(Native)C开发之七:libjpeg移植笔记
- Android原生(Native)C开发之九:OpenGL ES初探
- Android原生(Native)C开发之二 framebuffer篇
- Android原生(Native)C开发之五:zlib移植笔记
- SQL Server 数据类型
- hash vs RBTree
- 小书签实现天涯论坛“只看楼主”功能
- WaitForSingleObject和WaitForMultipleObjects用法
- struts2 配置web.xml问题
- Android原生(Native)C开发之一(备份测试代码的编译命令)
- Expression-Blend项目UI设计三要素
- Android版凯立德,可以正常导航,但是无法搜索地名的问题
- mysql linux 下表名忽略大小写相关设置
- Sql server中的Over子句的应用
- 基于FUNCTION自建数据源
- Android源码学习之一-Activity是如何实现主题变化的
- 充分利用 Xerces-C++,第 1 部分 2011.06.07
- [转]绿盟非常务实的拒信