完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
www.sinlinx.com
这一期我们还是继续来学习Android.mk,下面我们来思考几个问题: 1.如果说我们一个工程下面有多个源码文件,我们要如何把这些源码文件统一的做个管理,一起来进行编译呢? 2.我们如何在一个.mk文件中编译多个目标文件? 3.如何编译生成一个动态库和静态库 我们要将工程下的源码文件添加到变量中,我们有两种形式: 1.我们要将每一个文件添加到Android.mk中(需手动添加),下面我们来做个练习 首先呢,我们需要配置我们的环境变量.build/envsetup.sh,然后选择我们的lunch 19,这个一般都是固定的,我们的源码是在external/test/目录下 然后我们对external/test/做一个编译,这个编译把main.c和test1.c都编译完成了 然后我们来看一下我们的Android.mk vi external/test/Android.mk 现在呢LOCAL_SRC_FILES包含两个文件,一个是src/main.c一个是src/test1.c ,然后进入我们这个工程cd external/test/然后进入我们的src目录,然后我们将test1.c拷贝到test2.c 我们进入text2.c我们将它改一下,进去之后将call_1(void)改成call_2(void) 现在我们想将test2.c也加入到我们的工程当中,我们找到我们的Android.mk,打开它,将test2.c添加到LOCAL_SRC_FILES中 这样我们就完成了main.c 、test1.c 、test2.c的修改,然后我们用mm进行编译,这样就把test2.c也进行了编译 如果我们后边还想添加test3.c 或者更多,那么每当我们添加一个文件都需要手工的去修改一下Android.mk,这样就会显得特别不方便,那么现在就会用到我们所说的第二种方式 2.使用系统提供的函数进行处理 退回到我们的根目录,打开我们的Android.mk vi external/test/Android.mk 然后我们用sp命令打开build/core/definitions.mk,我们来查找一个all-c 最后我们切到后台用mmm命令进行编译, mmm external/test/ 我们可以看到,我们的main.c,test1.c,test2.c全部进行了编译 下面我们来验证一下我们所做的是否正确 我们将test1.c拷贝到test3.c里面,将test3.c改一下,直接将call_1改成call_3再进行编译 这样就可以直接将test3.c编译进来了,我们就不用去修改我们的Android.mk,这样呢就比我们单个添加方便很多了 下面我们来看一下如何在一个文件中来创建两个目标文件 我们想要创建一个test1,首先打开test文件,将test文件从LOCAL_PATH以下进行拷贝,将test改成test1,LOCAL_PATH保持不变 然后我们再来进行编译,mmm external/test/ 我们可以看到他生成了一个test1,然后我们使用touch命令把我们的文件都更新一下touch external/test/src/* 然后我们在执行编译命令这样我们就看到生成了两个文件一个test一个test1文件,这就是在一个文件中生成两个目标文件的过程 接下来我们来学习一下如何编译生成动态库和静态库 首先我们先将代码拷贝一份,我们将名字改成libtest ,然后将源文件改成test目录下的src/test1.c和test2.c ,生成目录不变,我们只需要把生成的类型换成BUILE_SHARED_LIBRARY或者BUILD_STATIC_LIBRARY然后我们在进行编译,这样就在目录下生成了我们所需要的动态库或者静态库 www.sinlinx.com |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
芯灵思SinlinxA33开发板Linux内核workqueue(附实测代码)
12240 浏览 0 评论
芯灵思SinlinxA33开发板Linux内核 tasklet 机制(附实测代码)
12918 浏览 0 评论
芯灵思Sinlinx A33开发板 Linux内核等待队列poll ---阻塞与非阻塞
35160 浏览 0 评论
芯灵思Sinlinx A33开发板Linux中断编程 3-应用程序
35090 浏览 0 评论
39177 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 03:36 , Processed in 0.679579 second(s), Total 66, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3857