1、多文件编译

多文件编译共有两种方式:

  (1) 在Android.mk中一一添加

      LOCAL_PATH:= $(call my-dir)  #定义当前模块的相对路径
      include $(CLEAR_VARS)      #清空当前环境变量
      LOCAL_MODULE:= test      #编译生成的目标名称
      LOCAL_SRC_FILES := test1.c \
                  test2.c \
                  test3.c
                #编译该模块所需要的源文件
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
      include $(BUILD_EXECUTABLE)   #编译之后的文件类型

  (2)在Android.mk中调用函数 

     LOCAL_PATH:= $(call my-dir)  #定义当前模块的相对路径
      include $(CLEAR_VARS)      #清空当前环境变量
      LOCAL_MODULE:= test      #编译生成的目标名称
      LOCAL_C_ALL_FILES := $(call all-c-files-under) #加载所有的文件     
      LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES      
     # LOCAL_SRC_FILES := test.c    #编译该模块所需要的源文件
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
      include $(BUILD_EXECUTABLE)   #编译之后的文件类型

2、一个Android.mk生成多个目标文件,只需要在Android.mk下面做如下的操作

       LOCAL_PATH:= $(call my-dir)  #定义当前模块的相对路径
      include $(CLEAR_VARS)      #清空当前环境变量
      LOCAL_MODULE:= test1      #编译生成的目标名称
      LOCAL_C_ALL_FILES := $(call all-c-files-under) #加载所有的文件     
      LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES      
     # LOCAL_SRC_FILES := test.c    #编译该模块所需要的源文件
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
      include $(BUILD_EXECUTABLE)   #编译之后的文件类型
      LOCAL_PATH:= $(call my-dir)  #定义当前模块的相对路径
      include $(CLEAR_VARS)      #清空当前环境变量
      LOCAL_MODULE:= test2      #编译生成的目标名称
      LOCAL_C_ALL_FILES := $(call all-c-files-under) #加载所有的文件     
      LOCAL_SRC_FILES := $LOCAL_C_ALL_FILES      
     # LOCAL_SRC_FILES := test.c    #编译该模块所需要的源文件
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
      include $(BUILD_EXECUTABLE)   #编译之后的文件类型

3、生成动态库,操作Android.mk

      LOCAL_PATH:= $(call my-dir)  #定义当前模块的相对路径
      include $(CLEAR_VARS)      #清空当前环境变量
      LOCAL_MODULE:= libtest      #编译生成的目标名称
      LOCAL_SRC_FILES := test1.c \
                  test2.c \
                  test3.c
                #编译该模块所需要的源文件
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
      include $(BUILD_SHARED_LIBRARY)   #编译之后的文件类型

4、生成静态库,操作Android.mk

      LOCAL_PATH:= $(call my-dir)  #定义当前模块的相对路径
      include $(CLEAR_VARS)      #清空当前环境变量
      LOCAL_MODULE:= libtest      #编译生成的目标名称
      LOCAL_SRC_FILES := test1.c \
                  test2.c \
                  test3.c
                #编译该模块所需要的源文件
     # LOCAL_MODULE_PATH:=$(LOCAL_PATH) #在当前目录生成该模块文件
      include $(BUILD_STATIC_LIBRARY)   #编译之后的文件类型

####共勉#####

最新文章

  1. C#模拟HTTP Form请求上传文件
  2. webapi returntype
  3. Expert 诊断优化系列------------------冤枉磁盘了
  4. python函数和常用模块(三),Day5
  5. Oracle【IT实验室】数据库备份与恢复之六:LogMiner
  6. word转html方法
  7. Android性能优化方法(六)
  8. IOS 作业项目(4)步步完成 画图 程序(上)
  9. MAC上搭建Jenkins + Android + IOS自动开发部署环境
  10. [RxJS] Filtering operator: filter
  11. C#中的转义字符
  12. vs2010根据字符串内容添加断点
  13. KMP详解之二
  14. 使用javaconfig配置freemarker
  15. java操作elasticsearch实现query String
  16. Note: SE Class's Individual Project
  17. java adapter(适配器)惯用方法
  18. C++的基本类型
  19. MATLAB(2)——小波工具箱使用简介
  20. 【PyQt5 学习记录】002:添加部件及网格布局

热门文章

  1. php导出数据到csv
  2. 【监控】jvisualvm之jmx远程连接 tomcat war启动应用
  3. js中的attribute详解
  4. 微信小程序~跳页传参
  5. 对象输入输出流ObjectInputStream、ObjectOutputStream(对象的序列化与反序列化)
  6. debug版本的DLL调用release版本的DLL引发的一个问题
  7. 独角兽估值30亿美金,我们聊聊RPA是什么
  8. js中四舍五入保留两位效数,js中将Number转换成字符类型
  9. 关于#pragma once和#ifndef
  10. (尚022)Vue案例_初始化显示(十分详细!!!)