Android.mk 语法详解

一.Android.mk简介

Android.mk 是Android 提供的一种makefile 文件,注意用来编译生成(exe,so,a,jar,apk)等文件。

二.Android.mk编写

分析一个最简单的Android.mk

LOCAL_PATH := $(call my-dir)  //定义了当前模块的相对路径

include $(CLEAR_VARS)  //清空当前环境变量

LOCAL_MODULE:= test  //编译生成的目标名称

LOCAL_SRC_FILES := test.c  //编译该模块需要的源文件

include $(BUILD_EXECUTABLE)  //编译所生成的目标文件格式

三.Android.mk编译静态库动态库

编译动态库:编译类型修改为 BUILD_SHARED_LIBRARY

编译静态库:编译类型修改为 BUILD_STATIC_LIBRARY

Android.mk 编译多个目标文件

编译动态库

C/C++ 文件编译生成静态库.so文件参考如下:

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
# 生成libhell.so
LOCAL_MODULE = libhello 
​​​LOCAL_CFLAGS = $(L_CFLAGS) 
LOCAL_SRC_FILES = hello.c 
LOCAL_C_INCLUDES = $(INCLUDES) 
LOCAL_SHARED_LIBRARIES := libcutils 
LOCAL_COPY_HEADERS_TO := libhello 
LOCAL_COPY_HEADERS := hello.h 
#编译动态库 BUILD_SHARED_LIBRARY
include $(BUILD_SHARED_LIBRARY) 

编译静态库

C/C++ 文件编译生成静态库.a文件参考如下:

#编译静态库 
LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
# 生成libhell.a
LOCAL_MODULE = libhello
LOCAL_CFLAGS = $(L_CFLAGS) 
LOCAL_SRC_FILES = hello.c 
LOCAL_C_INCLUDES = $(INCLUDES) 
LOCAL_SHARED_LIBRARIES := libcutils 
LOCAL_COPY_HEADERS_TO := libhello 
LOCAL_COPY_HEADERS := hellos.h 
# 编译 静态库 BUILD_STATIC_LIBRARY
include $(BUILD_STATIC_LIBRARY) 

四.Android引入系统库

引用静态库
LOCAL_STATIC_LIBRARIES += libxxxxx

引用动态库
LOCAL_SHARED_LIBRARIES += libxxxxx

引用第三方库文件
LOCAL_LDFLAGS:=-L/PATH -Lxxx

引用第三方头文件
LOCAL_C_INCLUDES :=path

 

相关推荐

  1. MakeDown语法详解

    2024-02-07 08:28:02       8 阅读
  2. WPF: XAML语法规范详解

    2024-02-07 08:28:02       13 阅读
  3. python常见的语法详解

    2024-02-07 08:28:02       14 阅读
  4. 正则表达式语法详解

    2024-02-07 08:28:02       12 阅读
  5. Python 基础语法详解(二)

    2024-02-07 08:28:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 08:28:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 08:28:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 08:28:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 08:28:02       18 阅读

热门阅读

  1. Flask实现异步调用sqlalchemy的模型类

    2024-02-07 08:28:02       28 阅读
  2. 正则表达式 regex

    2024-02-07 08:28:02       36 阅读
  3. jvm一级缓存

    2024-02-07 08:28:02       30 阅读
  4. kyuubi 接入starrocks | doris

    2024-02-07 08:28:02       31 阅读
  5. VLM 系列——LLaVA-MoLE——论文解读

    2024-02-07 08:28:02       29 阅读
  6. ef core原始sql查询

    2024-02-07 08:28:02       28 阅读
  7. dynamic_cast运行阶段类型识别

    2024-02-07 08:28:02       33 阅读
  8. 详细了解Node.js的配置与使用!

    2024-02-07 08:28:02       27 阅读
  9. Python程序设计 深浅拷贝

    2024-02-07 08:28:02       30 阅读
  10. 腾讯云主机部署spring boot程序

    2024-02-07 08:28:02       30 阅读
  11. 时序数据库m3db集群二进制部署

    2024-02-07 08:28:02       31 阅读
  12. PoEAA笔记-7.分布策略

    2024-02-07 08:28:02       29 阅读