android学习总结五:继续学习Android.mk

这一期我们还是继续来学习 Android.mk ,下面我们来思考几个问题:
[size=10.5000pt]1.如果说我们一个工程下面有多个源码文件,我们要如何把这些源码文件统一的做个管理,一起来进行编译呢?
[size=10.5000pt]2.我们如何在一个 .mk 文件中编译多个目标文件?
[size=10.5000pt]3.如何编译生成一个动态库和静态库
我们要将工程下的源码文件添加到变量中,我们有两种形式:
[size=10.5000pt]1.我们要将每一个文件添加到 Android.mk (需手动添加),下面我们来做个练习
首先呢,我们需要配置我们的环境变量 .build/envsetup.sh, 然后选择我们的 lunch 19 ,这个一般都是固定的,我们的源码是在 external/test/ 目录下
然后我们对external/test/ 做一个编译,这个编译把 main.c test1.c 都编译完成了http://tiyubisai.com/video_news/news_135503.html
然后我们来看一下我们的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 ,这样就会显得特别不方便,那么现在就会用到我们所说的第二种方式

[size=10.5000pt]2.使用系统提供的函数进行处理
退回到我们的根目录,打开我们的 Android.mk   vi external/test/Android.mk
然后我们用 sp 命令打开 build/core/definitions.mk ,我们来查找一个 all-c
有黄色部分呢就是我们的函数,我们来看一下他所实现的功能,进入我们的LOCAL_PATH, 然后找到我们的所有 .c 文件,这样就能得到当前目录下的所有 .c 文件,我们再来把我们的代码改一下,首先添加一个变量, LOCAL_C_ALL_FILES, 然后我们需要调用一个函数,我们可以根据第一行那个函数调用我们所查找的那个函数,然后我们将我们所查找到的所有 .c 文件给我们的 LOCAL_SRC_FILES
最后我们切到后台用 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 然后我们在进行编译,这样就在目录下生成了我们所需要的动态库或者静态库
上面呢就是我在第五期视频上学到的一些东西,希望对想学安卓的朋友有一定的帮助。
第四讲:http://blog.csdn.net/chengfeng135/article/details/49618295
文章来源:http://blog.csdn.net/chengfeng135/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值