zoukankan      html  css  js  c++  java
  • 安卓之Android.mk多文件以及动态库编译

    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)   #编译之后的文件类型

    ####共勉#####

  • 相关阅读:
    文件名中含有空格读取时产生的异常
    R 常用清洗函数汇总
    Fluid 0.4 新版本正式发布:支持数据预热,优化小文件场景
    阿里云 Serverless 再升级,从体验上拉开差距
    Dubbo-go 源码笔记(二)客户端调用过程
    高质量的缺陷分析:让自己少写 bug
    微服务框架 Go-Micro 集成 Nacos 实战之服务注册与发现
    OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?
    在大规模 Kubernetes 集群上实现高 SLO 的方法
    双十一购物节,Nacos 1.4.0 + Go SDK 1.0.1发布
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10004564.html
Copyright © 2011-2022 走看看