Android NDK开发,Android.mk构建基础
来源:互联网 发布:淘宝哪个店有原味丝袜 编辑:程序博客网 时间:2024/06/05 16:38
关于Android.mk
Android.mk构建说明
Android.mk必须以 LOCAL_PATH开头(注释#除外)
LOCAL_PATH := $(call my-dir)
必须借助CLERA_VARS变量清除除LOCAL_PATH外的所有LOCAL_<name>变量,以免冲突
include $(CLEAR_VARS)
必须定义LOCAL_MODULE变量,该变量用于定义该模块的唯一名称。例如,
LOCAL_MODULE := fuck
这样,编出的C/C++模块文件名将是libfuck.so
通过LOCAL_SRC_FILES变量设置源文件列表,多文件用“\”隔开,例如
LOCAL_SRC_FILES := aaa.cpp \
bbb.cpp \
ccc.cpp
注意,最后一个源文件结尾不加“\”
必须在文件结尾定义编译类型
我们可以将我们的NDK模块编译成:
BUILD_SHARED_LIBRARY 共享库,供java或者其他共享库调用
BUILD_STATIC_LIBRARY 静态库,供共享库调用,不能直接被java调用。例如我们先构建一个静态库 LOCAL_MODULE := fuck_static,那么我们可以在构建共享库的时候加入 LOCAL_STATIC_LIBRARIES := fuck_static (写在LOCAL_SRC_FILES之后)来引用这个静态库。
还有其他编译类型,再次不一一列举!
我们可以在一个Android.mk文件里面定义多个相同或者不同类型的库,这些库定义以Include $(CLEAR_VARS)开始,以定义编译类型结束。例如:
注意,如果在共享库中使用LOCAL_STATIC_LIBRARIES引用静态库,那么这个静态库将被静态地添加到该共享库中,这种方式代码运行效率是最高的,但是同时会增加该共享库的体积。如果某个静态库被多个共享库同时引用n次,静态库的n个副本将被添加到这些共享库中,这样会显著增加C/C++库集合的体积。
这样的话,就需要将这个静态库编译成共享库,通过动态链接的方式供其他共享库使用(这样就不会产生相同C/C++库的多个副本)。
例如:
声明
欢迎转载,但请保留文章原始出处
作者:Jaiky_杰哥
出处:http://blog.csdn.net/jaikydota163/article/details/52098887
- Android NDK开发,Android.mk构建基础
- NDK 基础开发实例(Android.mk环境配置下)
- Android NDK开发指南---Android.mk文件
- Android NDK开发指南---Android.mk文件
- Android.mk语法说明(android ndk开发)
- Android NDK开发指南---Android.mk文件
- Android NDK开发指南---Android.mk文件
- Android NDK开发指南---Android.mk文件
- Android NDK开发指南---Android.mk文件
- android ndk Android.mk
- Android NDK --Android.mk
- Android-NDK开发之基础--Android.mk的用法和基础(转CSDN)
- Android-NDK开发之基础--Android.mk的用法和基础(转CSDN)
- Android-NDK开发之基础--Android.mk的用法和基础(转CSDN)
- android ndk 开发之Application.mk
- Android NDK 开发教程六: application.mk
- Android NDK开发指南---Application.mk文件
- Android NDK开发指南---Application.mk文件
- Android实用视图动画及工具系列之九:漂亮的图片选择器,高性能防崩溃图片选择工具
- HDU - 5787 K-wolf Number 数位DP
- 利用Office 365 定制企业合同管理平台,实现企业合同管理新篇章!
- Android实用视图动画及工具系列之十:漂亮的发布动画,仿新浪首页加号发布微博动画框
- 函数的定义声明 用法 形参实参 return关键字
- Android NDK开发,Android.mk构建基础
- 一个菜鸟程序员的自白
- 2016多校训练Contest5: 1007 K-wolf Number hdu5787
- AngularJS: controller as syntax
- 使用rem等比例缩放手机界面
- Android Studio意外结束,或电脑死机,导致大面积错误
- 使用C/C++中的宏
- java学习之路 之 高级类特性1-面向对象特征之二:继承及方法重写(override)
- 多文件开发 按位运算符 预处理指令 进制等