android 编译模块
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函数的参数用来指定此次编译的目标设备以及编译类型, 这里指定设备是的是imx6
mmm dir # 编译指定目录下的模块,这个dir目录包含上面提到的Android.mk以及源码,自行更改目录的路径
生成的镜像位于
out/target/product/sabresd_6dq/system/bin/gpio
Author
Tony Liu
2016-8-13, Shenzhen
android 编译模块的更多相关文章
- android源码环境下用mmm/mm编译模块,输出编译log到文件的方法
android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...
- Android编译环境(1) - 编译Native C的模块
Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比 ...
- android 编译
编译 Android完全编译,耗时 1 小时 25 分$ make编译当前目录下的模块,耗时 1 小时 31 分mm编译指定目录下的模块mmm 模块的根目录清除上次编译输出make clean单独编译 ...
- Android编译中m、mm、mmm的区别
准备工作 在AndroidSource Code中有envsetup.sh档案,当执行过此档案后,可以大幅将build的过程简单化.自动化 此档案在src(android source code 位置 ...
- 【Android】MTK Android 编译命令
命令格式:./maketek [option] [project] [action] [modules] Option: -t ,-tee :输出log信息到当前终端 -o , -opt=-- : 编 ...
- Android编译过程详解(三)
前面两节讲解了自定义Android编译项和创建Product产品配置文件,除了编译和定义产品相关环境变量外,还需要定义Board相关环境变量. 1. build/core/config.mk 109 ...
- Android编译错误——undefined reference to
[错误描述] 未定义引用 提示如下:bootable/recovery/minzip/Zip.c:1122: error: undefined reference to 'selabel_lookup ...
- Android编译系统环境初始化过程分析
Android源代码在编译之前,要先对编译环境进行初始化,其中最主要就是指定编译的类型和目标设备的型号.Android的编译类型主要有eng.userdebug和user三种,而支持的目标设备型号则是 ...
- Android 编译时:m、mm、mmm、mma、mmma的区别
m:编译整个安卓系统 makes from the top of the tree mm:编译当前目录下的模块,当前目录下需要有Android.mk这个makefile文件,否则就往上找最近的Andr ...
随机推荐
- 使用Jmeter对应用程序进行测试
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1,大家可以到 http://jakarta.apache.org/jmeter ...
- UNIX网络编程读书笔记:套接口地址结构
前言 大多数套接口函数都需要一个指向套接口地址结构的指针作为参数.每个协议族都定义它自己的套接口地址结构.这些结构的名字均以"sockaddr_"开头,并以对应每个协议族的唯一后缀 ...
- 关于android的设备管理器-DevicePolicyManager(二)
上回分析到了/data/system/device_policies.xml这个文件是在package change事件发生的时候变化的.那么来看看它的内容. 依据以往的经验.在/data/syste ...
- Burning widget
This is a widget that we can see in Nero, K3B, or other CD/DVD burning software. #!/usr/bin/python # ...
- 父元素没有设置定位 position absolute 解析
1.示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UT ...
- webpack 编译less/scss文件
1.安装插件 处理less: npm install less-loader --save-dev 处理sass: npm install sass-loader --save-dev 2.项目目录: ...
- oracle 存储过程 调用动态sql
oracle 存储过程 调用动态sql CreationTime--2018年8月16日11点25分 Author:Marydon 1.错误实现方式 --开始时间拼接' 00:00:00' V_S ...
- springmvc 日期解决方案(三)使用jackson
引入jar包: <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jac ...
- JDBC JdbTemplate&NamedParameterJdbcTemplate(Spring工具类)
使用该工具类需要从spring开发包中导入spring.jar和commons-logging.jar,这个模板是线程安全的. JdbcTemplate: public class JdbcTem ...
- GG中obey命令的使用
obey命令的使用. 我们能够将一些在GGSCI命令行工具中输入的命令,放到一个文件里. 比如将以下的命令,放到direnv/db.oby文件里. ADD EXTRACT d_ncbs, EXTTRA ...