网站首页 > 技术文章 正文
Android NDK之Android.mk
1: 定义:
Android.mk 是向Android NDK 构建系统描述NDK项目的GUN MakeFile片段。
2:内容定义
Android.mk 文档必须以LOCAL_PATH 变量的定义开头,
因为:Android 构建系统 要利用LOCAL_PATH 来定位源文件。
LOCAL_PATH :=$ (call my-dir)
清除变量 CLEAR_VARS
Android构建系统将该变量设置为clear-vars.mk片段的位置。可以清除LOCAL_PATH 以外的LOCAL_<name> 变量。
Include $(CLEAR_VARS)
LOCAL_MODULE
用来给模块=设定唯一的名称。比如:要生成的可执行程序名称,动态库名称,静态库名称。
LOCAL_SRC_FILES:
定义模块源文件列表。
BUILD_SHARED_LIBRARY:
构建共享库
Include $(BUILD_SHARED_LIBRARY)
BUILD_STATIC_LIBRARY:
构建静态库
Include $(BUILD_STATIC_LIBRARY)
BUILD_STATIC_LIBRARY:
构建可执行程序
Include $(BUILD_EXECUTABLE)
LOCAL_STATIC_LIBRARIES:
引用静态库
LOCAL_STATIC_LIBRARIES := 静态库名
LOCAL_SHARED_LIBRARIES:
引用动态库
LOCAL_SHARED_LIBRARIES := SO库名
LOCAL_CPP_FEATURES:
可选变量,用来指明 模块所依赖的C++ 特性。
LOCAL_CPP_EXTENSION:
C++源文件的默认扩展名是.cpp ,这个变量可以用来为C++源代码 指定一个或者多个文件扩展名。如下所示:
LOCAL_CPP_EXTENSION := .cpp .cxx
TARGET_ARCH:
目标CPU体系结构名称,例如:arm
TARGET_PLATFORM:
目标Android 平台的名称,例如:android-3
TARGET_ARCH_ABI:
目标CPU体系结构和ABI的名称。例如:armeabi-7a
TARGET_ABI:
目标平台和ABI的串联。例如:android-3-armeabi-v7a
LOCAL_MODULE_FILENAME
可选变量,用来重新定义生成的文件名称。
LOCAL_C_INCLUDES:
可选目录列表,NDK安装目录相对路径,用来搜索头文件。
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_CFLAGS:
可选编译器标志,
LOCAL_CPP_FLAGS:
可选编译标志,在只编译C++源文件时传给编译器。
LOCAL_WHOLE_STATIC_LIBRARIES:
用来指明应该被包含在生成共享库中的所有静态库内容。
注意:当几个静态库之间有循环依赖是 这个标记很有用。
LOCAL_LDLIBS:
连接标志的可选列表。用于传送要进行动态日阿莲姐的系统库列表。
LOCAL_ALLOW_UNDEFINED_SYMBOLS:
可选参数,禁止在生成的文件中进行缺失符号检查,若没有定义,连接器会在符号缺失时生成错误信息。
LOCAL_ARM_MODE
可选参数,ARM机器体系中结构特有变量,用于要生成的ARM二进制类型,默认情况下,构建系统在拇指模式下用16位指令生成。但该变量 可以被设置成arm 来指定用32位指令。
LOCAL_ARM_MODE :=arm
LOCAL_EXPORT_CPPFLAGS:
和LOCAL_EXPORT_CLAGS一样,但是它是C++特定代码编译器标志
LOCAL_EXPORT_LDFLAGS:
和LOCAL_EXPORT_CLAGS一样,但是用作连接器器标志
LOCAL_EXPORT_C_INCLUDES:
允许记录路径集
注意:在Andoid NDK构建系统中,共享模块路径不能包含空格。
在实际的Android 应用程序中并不直接是哟静态库,并且应用程序中也不包含静态库。但静态库可以用来构建共享库。
同时使用静态库和动态库时,可以在模块间共享通用模块,但要说明的是,所有这些模块必须属于同一个NDK项目。
猜你喜欢
- 2024-10-27 NDK开发——FFmpeg视频解码 ffmpeg ndk
- 2024-10-27 Camera基本代码架构 camera calibrator
- 2024-10-27 android 功耗分析方法和优化(1) 功耗app
- 2024-10-27 Cocos Creator v2.3.2 发布了!全新 Launcher 效率飞起!
- 2024-10-27 如何androd动态注册编写计算器 淘宝动态评分计算器在线
- 2024-10-27 高通平台OV8856 Camera的bring up总结
- 2024-10-27 高通平台移植GC2145 Camera驱动 高通驱动安装
- 2024-10-27 《坎公骑冠剑》光炮Android Mk.99技能与背景故事
- 2024-10-27 ubuntu移植libwebp到Android平台 ubuntu移植到arm
- 2024-10-27 步步为营,十分钟学会 Native JNI(附带彩蛋)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)