没有合适的资源?快使用搜索试试~ 我知道了~
首页如何在Android下编译C程序
Android 编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile 文件,而其他的每个 component 都使用统一标准 Android.mk. Android.mk 文件本身是比较简单的,不过它并不是我们熟悉的 Makefile,而是经过了 Android 自身编译系统的很多处理,因此要真正理清楚其中的联系还比较复杂,不过这种方式的好处在于,编写一个新的 Android.mk 来给 Android 增加一个新的 Component 会比较简单。 编译 ava 程序可以直接采用 Eclipse 的集成环境来完成,这里就不重复了。我们主要针对 C/C++来说明,下面通过一个小例子来说明,如何在 Android 中增加一个 C 程序的 Hello orld:
资源详情
资源评论
资源推荐
Android 手工编译 C 程序 (2010-04-23 09:25)
Android 编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有 Makefile 文件,而其他
的每个 component 都使用统一标准 Android.mk. Android.mk 文件本身是比较简单的,不过它并不是我们
熟悉的 Makefile,而是经过了 Android 自身编译系统的很多处理,因此要真正理清楚其中的联系还比较复
杂,不过这种方式的好处在于,编写一个新的 Android.mk 来给 Android 增加一个新的 Component 会比较
简单。 编译 Java 程序可以直接采用 Eclipse 的集成环境来完成,这里就不重复了。我们主要针对 C/C++来
说明,下面通过一个小例子来说明,如何在 Android 中增加一个 C 程序的 Hello World:
1. 在$(YOUR_ANDROID)/ development 目录下创建 hello 目录,其中$(YOUR_ANDROID)指
Android 源代码所在的目录。
- # mkdir $(YOUR_ANDROID)/development/hello
2. 在$(YOUR_ANDROID)/external/hello/目录编写 hello.c 文件,hello.c 的内容当然就是经典的
HelloWorld 程序:
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World!");
return 0;
}
3. 在$(YOUR_ANDROID)/external/hello/目录编写 Android.mk 文件。这是 Android Makefile 的标准命
名,不要更改。Android.mk 文件的格式和内容可以参考其他已有的 Android.mk 文件的写法,针对
helloworld 程序的 Android.mk 文件内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
hello.c
LOCAL_MODULE := helloworld
include $(BUILD_EXECUTABLE)
注意上面 LOCAL_SRC_FILES 用来指定源文件;,LOCAL_MODULE 指定要编译的模块的名字,下一
步骤编译时就要用到;include $(BUILD_EXECUTABLE)表示要编译成一个可执行文件,如果想编译成动
态库则可用 BUILD_SHARED_LIBRARY,这些可以在$(YOUR_ANDROID)/build/core/config.mk 查
到。
4. 回到 Android 源代码顶层目录进行编译:
# cd $(YOUR_ANDROID) && make helloworld
注意 make helloworld 中的目标名 helloworld 就是上面 Android.mk 文件中由 LOCAL_MODULE 指定的
模块名。编译结果如下:
target thumb C: helloworld <= development/hello/hello.c
target Executable: helloworld
(out/target/product/generic/obj/EXECUTABLES/helloworld_intermediates/LINKED/helloworld)
target Non-prelinked: helloworld (out/target/product/generic/symbols/system/bin/helloworld)
target Strip: helloworld
(out/target/product/generic/obj/EXECUTABLES/helloworld_intermediates/helloworld)
ayiso
- 粉丝: 0
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 数据结构1800题含完整答案详解.doc
- 医疗企业薪酬系统设计与管理方案.pptx
- 界面与表面技术界面理论与表面技术要点PPT学习教案.pptx
- Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf
- 网页浏览器的开发 (2).pdf
- 路由器原理与设计讲稿6-交换网络.pptx
- 火电厂锅炉过热汽温控制系统设计.doc
- 企业识别CIS系统手册[收集].pdf
- 物业管理基础知识.pptx
- 第4章财务预测.pptx
- 《集成电路工艺设计及器件特性分析》——实验教学计算机仿真系.pptx
- 局域网内共享文件提示没有访问权限的问题借鉴.pdf
- 第5章网络营销策略.pptx
- 固井质量测井原理PPT教案.pptx
- 毕业实习总结6篇.doc
- UGNX建模基础篇草图模块PPT学习教案.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4