LOCAL_PATH:=$(call my-dir)include$(CLEAR_VARS)LOCAL_MODULE:=hello-jniLOCAL_SRC_FILES:=hello-jni.c include$(BUILD_SHARED_LBRARY) 下面来稍微解释一下: 代码语言:javascript 复制 LOCAL_PATH:=$(call my-dir) 所有的Android.mk文件必须要以LOCAL_PATH变量定义开头。它用来定位要编译的源代码在代码树中...
最关键的一步是通过LOCAL_STATIC_LIBRARIES导入了一个名为lib_static的静态库。最后,使用include $(LOCAL_PATH)/lib_static/Android.mk导入了静态库的Makefile文件。 示例代码 下面是一个简单的示例代码,演示了如何在Android.mk中导入名为lib_static的静态库: # 定义库名称和路径LOCAL_PATH:=$(callmy-dir)include...
② 静态库依赖配置 :LOCAL_STATIC_LIBRARIES X . 完整代码示例 1 . build.gradle 配置示例 代码语言:javascript 复制 apply plugin:'com.android.application'android{compileSdkVersion29buildToolsVersion"29.0.0"defaultConfig{applicationId"kim.hsl.mk"minSdkVersion15targetSdkVersion29versionCode1versionName"1.0"test...
运行ndk-build命令,该命令会自动查找并执行Android.mk文件。 执行完上述命令后,静态库文件libmylibrary.a将会生成在obj/local/armeabi-v7a目录下。 4. 使用静态库 要在应用程序中使用静态库,我们需要在应用程序的build.gradle文件中添加以下代码: android{// ...sourceSets{main{jniLibs.srcDirs+=['path/to/stati...
它又是如何知道,或者说它就是去out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/目录下查找libhost.a呢? 二、 built_static_libraries 我们先从找一下在何处使用到了LOCAL_STATIC_LIBRARIES这个变量入手,通过查找,我们发现build/core/binary.mk文件中定义built_static_libraries变量时使用到LOCAL_...
LOCAL_STATIC_LIBRARIES 用来引用前面定义的静态库。 最后,使用 include $(BUILD_SHARED_LIBRARY) 或include $(BUILD_EXECUTABLE) 来生成共享库或可执行文件。 4. 验证Android.mk配置是否正确 在添加了静态库引用后,你需要验证Android.mk文件的配置是否正确。这通常涉及到检查路径、模块名称等是否一致,以及确保静态库文...
一、Android.mk Android.mk分为一下几部分: LOCAL_PATH:= $(call my-dir), 返回当前文件在系统中的路径,Android.mk文件开始时必须定义该变量。 include $(CLEAR_VARS), 表明清楚上一次构建过程中的所有全局变量,因为在一个Makefile编译脚本中,会使用到大量的全局变量,使用这行脚本表明需要清除所有的全局变量。
(5)LOCAL_STATIC_LIBRARIES: 表示该模块需要使用哪些静态库,以便在编译时进行链接。 (6)LOCAL_SHARED_LIBRARIES: 表示模块在运行时要依赖的共享库(动态库),在链接时就需要,以便在生成文件时嵌入其相应的信息。 注意:它不会附加列出的模块到编译图,也就是仍然需要在Application.mk 中把它们添加到程序要求的模块中。
LOCAL_ASSET_FILES在Android.mk文件中编译应用程序(BUILD_PACKAGE)时设置此变量,表示引用资源文件,通常会定义成: LOCAL_ASSET_FILES+=$(call find-subdir-assets) 说明:为保证可参考性,也将英语原文记录如下(下同,不再说明)。 In Android.mk files that include $(BUILD_PACKAGE) set this to the set of file...
变量 用途 LOCAL_SRC_FILES 当前模块包含的源代码文件 LOCAL_MODULE 当前模块的名称,这个名称应当是唯一的,模块间的依赖关系就是通过这个名称来引用的 LOCAL_C_INCLUDES C/C++ 语言需要的头文件的路径 LOCAL_STATIC_LIBRARIES 当前模块在静态编译时,需要的静态库 LOCAL_SHARED_LIBRARIES 当前模块在运行时依赖的动态库...