android 编译模块

在写完.c文件之后,需要加载到android上进行测试。使用arm-linux-gcc编译,并添加到android开发板上运行失败。

由于android与linux不同,需要编译成模块加载才能够正常运行。本文记录编译成模块的方法。

参考链接:

  https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/

1. Android.mk

每一个模块都有一个Android.mk文件,将源码和Android.mk都放在一个目录中。

LOCAL_PATH := $(call my-dir)        # 设置当前模块的编译路径为当前文件夹路径。include $(CLEAR_VARS)               # 清理(可能由其他模块设置过的)编译环境中用到的变量。LOCAL_MODULE    := gpio             # 当前模块名称,编译之后生成的模块名称
LOCAL_SRC_FILES := gpio.c           # 当前模块包含的所有源代码文件
LOCAL_LDLIBS    := -llog            # 编译本模块需要使用的库include $(BUILD_EXECUTABLE)         # 编译成可执行文件
#include $(BUILD_SHARED_LIBRARY)    # 编译成共享库
编译
source build/envsetup.sh    # 初始化编译环境,并引入一些辅助的 Shell 函数,这其中就包括后面使用的使用lunch,mmm函数。lunch sabresd_6dq-eng       # lunch函数的参数用来指定此次编译的目标设备以及编译类型, 这里指定设备是的是imx6mmm dir                     # 编译指定目录下的模块,这个dir目录包含上面提到的Android.mk以及源码,自行更改目录的路径

生成的镜像位于

  out/target/product/sabresd_6dq/system/bin/gpio

Author

Tony Liu

2016-8-13, Shenzhen

转载于:https://www.cnblogs.com/helloworldtoyou/p/5768473.html

android 编译模块相关推荐

  1. android.mk 模块编译,通过Android.mk添加一个编译模块到系统中的顺序如下

    ①LOCAL_PATH ②CLEAR_VARS ③LOCAL_SRC_FILES ④LOCAL_CFLAGS(可选) ⑤LOCAL_MODULE ⑥LOCAL_STATIC_LIBRARIES(可选) ...

  2. Android编译环境(1) - 编译Native C的模块

    Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比 ...

  3. Android 10.0 Andorid.bp 动态编译模块

    android 10 较 android 9而言,使用了很多Android.bp文件替代Android.mk 文件 虽然有工具实现Android.mk转换为 Android.bp文件了 但如果mk文件 ...

  4. android 模块不编译错误,Android 编译出错版本匹配问题解决办法

    Android 编译出错版本匹配问题解决办法 解决问题的关键在于版本匹配, compileSdkVersion compileSdkVersion targetSdkVersion 这三个参数的整数值 ...

  5. Android 编译系统模块 3

    Framework 模块编译概要 这一篇是对上一篇文章做了一个概要的说明,大致讲解了framework层的文件和结构. 1.cd framework/base 2.在此目录下执行 mm 3.adb p ...

  6. 【Android】MTK Android 编译命令

    命令格式:./maketek [option] [project] [action] [modules] Option: -t ,-tee :输出log信息到当前终端 -o , -opt=-- : 编 ...

  7. android编译全过程

    android编译全过程 (2011-06-04 15:27) 标签:  android编译  android 模块编译,mm 命令 如果你只需要修改某一个模块的内容,但是却每次都要执行make, 最 ...

  8. Android编译系统分析三:make完整编译android系统

    这篇博客的目标是摸清楚默认编译整个android系统时代码的流程. 当我们执行make的时候,会查找当前的Makefie文件或者makefile文件并且执行,在android顶级源码目录下面,确实有个 ...

  9. Android 编译系统分析(三)

    自Android开源以来,引起了嵌入式行业一股热潮,很多嵌入式开发者表示对Android有很强的兴趣,并下载Android源码进行编译和移植.Android源码的巨大(repo下来,大概2G)给人以A ...

  10. Android 编译系统分析(二)

    把Android所有的Make文件分为4种: 1.For config 这类文件主要来配置product,board,以及根据你的Host和Target选择相应的工具以及设定相应的通用编译选项: bu ...

最新文章

  1. 局部刷新时间 jsp_局部区块多个报表 TAB 页切换及局部区块的参数查询
  2. 老生常谈JavaScript闭包
  3. ROS: catkin和rosmake创建和编译功能包、执行节点
  4. Winform中使用FastReport的DesignReport时怎样给通过代码Table添加数据
  5. Winform中给DataGridView添加多选框列并获取选中行的内容
  6. office word中利用宏编程批量调节图片的亮度和对比度
  7. 51nod 1574 排列转换
  8. 容器学习 之 限制容器资源(十一)
  9. 面向表开发 面向服务开发_面向繁忙开发人员的计算机视觉
  10. AJAX方式进行验证码的判断(JS方式)
  11. 在 Windows 7 下手动删除驱动程序
  12. maven安装及配置
  13. Unity加载GIf动画
  14. SEO工具:免费快速排名软件大全!
  15. linux定时对准时间,Linux校对时间
  16. 如何 运行WRF模型 天气预报 数据后处理
  17. post man以Content-type: application/octet-stream方式请求api
  18. AES128加密算法实现(C语言:ECB加密模式实现)
  19. oracle 取任意一条数据,oracle随机取一条数据详解
  20. 01-初识Node.js

热门文章

  1. 苹果商店近期审核的问题
  2. Directionally Localized Anti-Aliasing
  3. 安装Centos系统
  4. C语言中#define的用法
  5. 计蒜客NOIP2017提高组模拟赛(三)day2-小区划分
  6. 【chrome】插件开发-教程00(如何开发插件)
  7. flash跟随鼠标样式
  8. [转]软件开发的“三重门”
  9. Unable to install breakpoint in XXX due to missing line number attributes的解决
  10. 学习笔记之什么是持久化和对象关系映射ORM技术