android .mk文件最后会生成哪个文件
时间: 2023-12-24 21:02:01 浏览: 172
Android.mk 文件最后会生成一个或多个目标文件,具体生成的文件取决于 Android.mk 文件中定义的模块类型和名称。
以下是几种常见的模块类型和生成的文件类型:
1. 动态库模块(Shared Library Module):使用 `include $(BUILD_SHARED_LIBRARY)` 定义的动态库模块会生成一个共享库文件(.so 文件),可以被其他 Android 应用程序加载和使用。
2. 静态库模块(Static Library Module):使用 `include $(BUILD_STATIC_LIBRARY)` 定义的静态库模块会生成一个静态库文件(.a 文件),这个文件包含了编译后的目标代码,可以被其他模块链接使用。
3. 可执行文件模块(Executable Module):使用 `include $(BUILD_EXECUTABLE)` 定义的可执行文件模块会生成一个可执行文件,用于在 Android 设备上直接运行。
4. APK 文件(Package Module):使用 `include $(BUILD_PACKAGE)` 定义的 APK 文件模块会生成一个安装包文件(.apk 文件),包含了应用程序的资源和可执行代码,可以通过 Android 设备上的安装器进行安装和运行。
需要注意的是,Android.mk 文件只是定义了构建过程中的规则和参数,最终的生成文件具体位置和名称还取决于构建系统的设置和配置。通常情况下,生成的文件会位于项目目录下的 obj 或者 libs 目录中。
相关问题
创建Android.mk和Application.mk文件:在OpenPose源代码目录中创建Android.mk和Application.mk文件,并填写相应的内容。Android.mk定义了编译规则和依赖关系,Application.mk定义了编译选项和参数。,可以说的详细些吗
当你在编译OpenPose源代码时,在源代码的根目录下应该会有一个名为`Android`的目录,这个目录中就包含了`Android.mk`和`Application.mk`两个文件,用于在Android NDK环境下编译OpenPose库。
这是`Android.mk`文件的一个示例:
```
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := openpose
LOCAL_SRC_FILES := src/main.cpp \
src/openpose.cpp \
src/pose.cpp \
src/net.cpp \
src/utils.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include \
$(LOCAL_PATH)/3rdparty/include
LOCAL_LDLIBS := -lm -llog -ljnigraphics -ldl -lz
LOCAL_STATIC_LIBRARIES := cpufeatures
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/cpufeatures)
```
在这个文件中,`LOCAL_PATH`是当前目录的路径,`LOCAL_MODULE`是编译后生成的库文件名,`LOCAL_SRC_FILES`是编译需要的源文件列表,`LOCAL_C_INCLUDES`是头文件所在目录,`LOCAL_LDLIBS`是需要链接的库文件列表,`LOCAL_STATIC_LIBRARIES`是需要静态链接的库文件列表。
这是`Application.mk`文件的一个示例:
```
APP_ABI := armeabi-v7a
APP_PLATFORM := android-19
APP_STL := gnustl_static
APP_BUILD_SCRIPT := Android.mk
APP_OPTIM := release
```
在这个文件中,`APP_ABI`是指定编译生成的so库的架构,`APP_PLATFORM`是指定编译生成的so库的最低支持的安卓API版本,`APP_STL`是指定编译使用的STL库,`APP_BUILD_SCRIPT`是指定编译脚本文件名,`APP_OPTIM`是指定编译优化级别。
需要根据你的具体需求,对这些文件进行相应的调整和修改,以满足你的编译需求。
android.mk文件
Android.mk 文件是 Android 应用程序的构建文件,它包含了应用程序的源代码、库文件、资源文件等信息,可以通过 make 命令来编译生成 APK 文件。在 Android Studio 中,Android.mk 文件已经被 Gradle 构建系统所取代,因此在新的 Android 应用程序中不再需要使用 Android.mk 文件。
阅读全文