一分钟学会Android.mk

 时间:2024-10-30 17:55:48

1、Android.mk的作用它是告诉ndk将jni代码编译生成动态库的一个编译脚本,基本上写jni代码是少不了一个Android.mk文件的

一分钟学会Android.mk

2、主要的android jni项目目录结构如下图所示

一分钟学会Android.mk

3、写一个最简单的Android.mk,如下图所示#保存当前目录的宏LOCAL_PATH := $(call my-dir) #清除全局宏定义的值include $(CLEAR_VARS)#生成的库的名称LOCAL_MODULE := othermodule#库编译需要的源码文件和依赖库LOCAL_SRC_FILES := lib/libothermodule-57.so#告诉Ndk编译成动态库include $(PREBUILT_SHARED_LIBRARY)

一分钟学会Android.mk

4、来一个复杂一点的#保存当前目录的宏LOCAL_PATH := $(call my-dir) #清除全局宏定义的值include $(CLEAR_VARS)#生成的库的名称LOCAL_MODULE := othermodule#库编译需要的源码文件和依赖库LOCAL_SRC_FILES := lib/libothermodule-57.so#告诉Ndk编译成动态库include $(PREBUILT_SHARED_LIBRARY)#清除全局宏定义的值include $(CLEAR_VARS)#是否允许未定义的符号LOCAL_ALLOW_UNDEFINED_SYMBOLS=false#生成的库的名称LOCAL_MODULE := jnidemo#生成的库的所用的头文件所在的目录LOCAL_C_INCLUDES := $(LOCAL_PATH)/include#ndk编译c代码用到的一些宏定义LOCAL_CFLAGS := -D_LINUX -D_ANDROID #ndk编译c++代码用到的一些宏定义LOCAL_CPPFLAGS := -D_LINUX -D_ANDROID#ndk编译当前目录下所有的c文件MY_C_LIST += $(wildcard $(LOCAL_PATH)/*.c)#ndk编译当前目录下所有的c++文件MY_CPP_LIST += $(wildcard $(LOCAL_PATH)/*.cpp)#所有的c、c++文件LOCAL_SRC_FILES := $(MY_C_LIST:$(LOCAL_PATH)/%=%)LOCAL_SRC_FILES += $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)#依赖的第三方库LOCAL_SHARED_LIBRARIES := othermodule#依赖的系统库LOCAL_LDLIBS := -landroid -pthread-llog-lz#告诉Ndk编译成动态库include $(BUILD_SHARED_LIBRARY)#递归调用子目录的.mkinclude $(call all-makefiles-under,$(LOCAL_PATH))include $(call all-subdir-makefiles)#用于在运行期检测目标设备的CPU家族和它支持的可选特性。$(call import-module,cpufeatures)

一分钟学会Android.mk

5、、简单说明一下我的编译环境,主要是Ndk的c、c++编译环境的配置,我用的是MINGGW

一分钟学会Android.mk
一分钟学会Android.mk
一分钟学会Android.mk
  • Android SDK下载和安装以及环境变量配置
  • Mysql如何修改用户密码
  • 如何管理linux用户和用户组
  • 如何下载Ubuntu系统
  • 如何让QHBoxLayout拥有层次感
  • 热门搜索
    名著阅读手抄报 保护生态环境手抄报 九一八事变手抄报 小学生手抄报版面设计图 绿色上网手抄报 成语手抄报 弟子规手抄报图片 节水节电节粮手抄报 手抄报a4版面设计图 交通安全手抄报花边