Android NDK Makefile
来源:互联网 发布:007是淘宝的品牌吗 编辑:程序博客网 时间:2024/06/08 06:41
参考
Android NDK中的docs/ANDROID-MK.html
1. 概要
此文档主要是用来描述Android.mk文件的语法,以及使用Android.mk文件来构建C/C++源文件。我们可以使用
使用Android.mk文件来编译成静态库、动态库和可执行文件。
2. 自定义变量
以LOCAL_、PRIVATE_、NDK_、APP_开头的变量以及小写字母的变量为NDK系统的保留字,建议使用MY_前缀来定义自己的变量。
3. NDK提供的变量(脚本)
3.1 CLEAR_VARS
功能: 指向一个脚本,此脚本清空几乎所有的LOCAL_XXX变量。
示例:
include $(CLEAR_VARS)
3.2 BUILD_SHARED_LIBRARY
功能: 指向一个脚本,此脚本根据你提供的信息构建动态链接库,生成的文件名为lib$(LOCAL_MODULE).so。
条件: LOCAL_MODULE和LOCAL_SRC_FILES已定义(这个两个变量稍后会介绍)
示例:
include $(BUILD_SHARED_LIBRARY)
3.3 BUILD_STATIC_LIBRARY
功能: 指向一个脚本,此脚本根据你提供的信息构建静态链接库,生成的文件名为lib$(LOCAL_MODULE).a。静态库不会复制到项目或安装包里,通常只是用于动态库(请参考LOCAL_STATIC_LIBRARIES)
条件: LOCAL_MODULE和LOCAL_SRC_FILES已定义(这个两个变量稍后会介绍)
示例:
include $(BUILD_STATIC_LIBRARY)
3.4 BUILD_EXECUTABLE
功能: 指向一个脚本,此脚本根据你提供的信息构建可执行文件,生成的文件名为$(LOCAL_MODULE)。
条件: LOCAL_MODULE和LOCAL_SRC_FILES已定义(这个两个变量稍后会介绍)
示例:
include $(BUILD_EXECUTABLE)
4. NDK提供的函数宏
4.1 my-dir
功能: 返回最后一次被包含的Android.mk的路径。
示例:
LOCAL_PATH := $(call my-dir)
4.2 all-subdir-makefiles
功能: 返回一个位于'my-dir'目录的所有子目录中的Android.mk文件列表。
示例:
include $(call all-subdir-makefiles)
4.3 this-makefile
功能: 返回当前Android.mk文件的全文件名(包含路径)。
5. 模块描述变量
这些变量通常用于描述需要构建的模块,我们需要将这些变量的中部分变量定义在'include $(CLEAR_VARS)'和'include $(BUILD_XXXXX)'中间。
5.1 LOCAL_PATH
该变量用于表示当前目录,必须Android.mk文件的开始定义;该变量不会被$(CLEAR_VARS)清空,只需要在Android.mk文件的开始定义一次。
示例:
LOCAL_PATH := $(call my-dir)
5.2 LOCAL_MODULE
该变量用于表示模块的名字,必须在所有模块名中唯一,并且不能包含空格;在包含$(BUILD_XXXX)脚本之前,必须首先定义此变量。
5.3 LOCAL_SRC_FILES
该变量用于表示模块需要编译的源文件列表,被依赖的文件放在前面,不需要配合LOCAL_PATH环境变量使用绝对路径。
5.4 LOCAL_CPP_EXTENSION(可选)
该变量用于表示C++的扩展名,必须要用'点'开头,默认是'.cpp';从NDK r7开始,可以多个扩展名。
示例:
LOCAL_CPP_EXTENSION := .cxx .cpp .cc
5.5 LOCAL_CPP_FEATURES(可选)
该变量用于表示使用C++的一些特性,比如RTTI和异常等。
示例:
LOCAL_CPP_FEATURES := rtti
5.6 LOCAL_C_INCLUDES(可选)
该变量用于表示头文件包含搜索路径列表,需要配合LOCAL_PATH环境变量使用绝对路径。
5.7 LOCAL_CFLAGS(可选)
该变量表示C/C++源文件的编译标志。
5.8 LOCAL_CPPFLAGS(可选)
该变量表示C++源文件的编译标志。
5.9 LOCAL_STATIC_LIBRARIES(可选)
该变量表示需要链接到当前模块的静态库模块列表。
5.10 LOCAL_SHARED_LIBRARIES(可选)
该变量表示需要链接到当前模块的动态库模块列表。
5.11 LOCAL_LDLIBS(可选)
该变量表示当前模块附加链接标志列表,通常链接系统的动态链接库。
示例:
LOCAL_LDLIBS += -llog
5.12 LOCAL_LDFLAGS(可选)
该变量表示当前模块附加链接标志列表,通常链接外部的静态链接库,需要配合LOCAL_PATH环境变量使用绝对路径。
示例:
LOCAL_LDFLAGS := $(LOCAL_PATH)/../lib/libtest.a
Android NDK中的docs/ANDROID-MK.html
1. 概要
此文档主要是用来描述Android.mk文件的语法,以及使用Android.mk文件来构建C/C++源文件。我们可以使用
使用Android.mk文件来编译成静态库、动态库和可执行文件。
2. 自定义变量
以LOCAL_、PRIVATE_、NDK_、APP_开头的变量以及小写字母的变量为NDK系统的保留字,建议使用MY_前缀来定义自己的变量。
3. NDK提供的变量(脚本)
3.1 CLEAR_VARS
功能: 指向一个脚本,此脚本清空几乎所有的LOCAL_XXX变量。
示例:
include $(CLEAR_VARS)
3.2 BUILD_SHARED_LIBRARY
功能: 指向一个脚本,此脚本根据你提供的信息构建动态链接库,生成的文件名为lib$(LOCAL_MODULE).so。
条件: LOCAL_MODULE和LOCAL_SRC_FILES已定义(这个两个变量稍后会介绍)
示例:
include $(BUILD_SHARED_LIBRARY)
3.3 BUILD_STATIC_LIBRARY
功能: 指向一个脚本,此脚本根据你提供的信息构建静态链接库,生成的文件名为lib$(LOCAL_MODULE).a。静态库不会复制到项目或安装包里,通常只是用于动态库(请参考LOCAL_STATIC_LIBRARIES)
条件: LOCAL_MODULE和LOCAL_SRC_FILES已定义(这个两个变量稍后会介绍)
示例:
include $(BUILD_STATIC_LIBRARY)
3.4 BUILD_EXECUTABLE
功能: 指向一个脚本,此脚本根据你提供的信息构建可执行文件,生成的文件名为$(LOCAL_MODULE)。
条件: LOCAL_MODULE和LOCAL_SRC_FILES已定义(这个两个变量稍后会介绍)
示例:
include $(BUILD_EXECUTABLE)
4. NDK提供的函数宏
4.1 my-dir
功能: 返回最后一次被包含的Android.mk的路径。
示例:
LOCAL_PATH := $(call my-dir)
4.2 all-subdir-makefiles
功能: 返回一个位于'my-dir'目录的所有子目录中的Android.mk文件列表。
示例:
include $(call all-subdir-makefiles)
4.3 this-makefile
功能: 返回当前Android.mk文件的全文件名(包含路径)。
5. 模块描述变量
这些变量通常用于描述需要构建的模块,我们需要将这些变量的中部分变量定义在'include $(CLEAR_VARS)'和'include $(BUILD_XXXXX)'中间。
5.1 LOCAL_PATH
该变量用于表示当前目录,必须Android.mk文件的开始定义;该变量不会被$(CLEAR_VARS)清空,只需要在Android.mk文件的开始定义一次。
示例:
LOCAL_PATH := $(call my-dir)
5.2 LOCAL_MODULE
该变量用于表示模块的名字,必须在所有模块名中唯一,并且不能包含空格;在包含$(BUILD_XXXX)脚本之前,必须首先定义此变量。
5.3 LOCAL_SRC_FILES
该变量用于表示模块需要编译的源文件列表,被依赖的文件放在前面,不需要配合LOCAL_PATH环境变量使用绝对路径。
5.4 LOCAL_CPP_EXTENSION(可选)
该变量用于表示C++的扩展名,必须要用'点'开头,默认是'.cpp';从NDK r7开始,可以多个扩展名。
示例:
LOCAL_CPP_EXTENSION := .cxx .cpp .cc
5.5 LOCAL_CPP_FEATURES(可选)
该变量用于表示使用C++的一些特性,比如RTTI和异常等。
示例:
LOCAL_CPP_FEATURES := rtti
5.6 LOCAL_C_INCLUDES(可选)
该变量用于表示头文件包含搜索路径列表,需要配合LOCAL_PATH环境变量使用绝对路径。
5.7 LOCAL_CFLAGS(可选)
该变量表示C/C++源文件的编译标志。
5.8 LOCAL_CPPFLAGS(可选)
该变量表示C++源文件的编译标志。
5.9 LOCAL_STATIC_LIBRARIES(可选)
该变量表示需要链接到当前模块的静态库模块列表。
5.10 LOCAL_SHARED_LIBRARIES(可选)
该变量表示需要链接到当前模块的动态库模块列表。
5.11 LOCAL_LDLIBS(可选)
该变量表示当前模块附加链接标志列表,通常链接系统的动态链接库。
示例:
LOCAL_LDLIBS += -llog
5.12 LOCAL_LDFLAGS(可选)
该变量表示当前模块附加链接标志列表,通常链接外部的静态链接库,需要配合LOCAL_PATH环境变量使用绝对路径。
示例:
LOCAL_LDFLAGS := $(LOCAL_PATH)/../lib/libtest.a
- Android NDK Makefile structure
- Android NDK Makefile
- Android NDK makefile
- Android NDK Makefile
- protobuf android ndk makefile
- [Android Makefile] Android NDK Document
- Android NDK 用Makefile 编译
- GORC | NDK | 移植 | makefile.in | Android.mk
- Android 的NDK的Makefile编写
- Android进阶专题三:NDK Makefile
- ndk makefile
- Android NDK学习(8)Android Makefile探索2 .
- ANDROID NDK makefile 链接静态库的方法
- 如何使用自己的makefile编译android ndk项目
- android ffmpeg ndk Makefile 编译(开源工程)
- 手动写Makefile编译Android NDK的so
- NDK makefile 文件分析
- NDK makefile格式内容
- 《妙趣横生的算法》第10章 算法设计与数据结构面试精粹之常见的算法设计题10-9(question?)
- PVCBOT【20号】机械螃蟹--横向爬行机器人
- PVCBOT【21号】挑战者--人形机甲战士
- GCC编译器
- Excel中如何保持两个单元格数值相同
- Android NDK Makefile
- 简单配置让您的无线小路由变成无线交换机
- 简单配置让您的无线小路由变成无线交换机
- PVCBOT【22号】信步者--多足步履机械兽
- 从sd卡启动之文件系统制作
- CPU的little-endian模式和big-endian模式
- PVCBOT【23号】跋涉者--四足长腿步履怪
- EJB试题
- 哈希算法分布与一致性哈希算法详解