Android NDK 构建脚本解释:导出动态库报错原因及解决方法
这段代码是一个 Android NDK 的构建脚本,用于将 C/C++ 代码编译成动态库供 Android 应用调用。
首先,代码指定了 Android.mk 文件所在的目录为 'LOCAL_PATH'。
然后,通过 'include $(CLEAR_VARS)' 清除之前的 'LOCAL_变量',再定义一个新的模块 'LOCAL_MODULE',命名为 'hello'。
接着,指定了需要编译的源文件 'LOCAL_SRC_FILES',即 'prebuild/arm64-v8a/libhello.so'。
使用 'include $(PREBUILT_SHARED_LIBRARY)' 将该动态库链接到模块中。
接下来,设置库文件的输入目录 'NDK_APP_DST_DIR' 为 '../jniLibs/$(TARGET_ARCH_ABI)',即目标目录为 '../jniLibs/$(TARGET_ARCH_ABI)'。
再次使用 'include $(CLEAR_VARS)' 清除之前的 'LOCAL_变量',定义一个新的模块 'LOCAL_MODULE',命名为 'ndkbuild'。
指定了需要编译的源文件 'LOCAL_SRC_FILES',即 'com_example_hello_HelloWorld.cpp'。
将之前定义的 'hello' 动态库添加到 'LOCAL_SHARED_LIBRARIES' 中。
最后,使用 'include $(BUILD_SHARED_LIBRARY)' 将代码编译成动态库。
至于为什么导出的动态库会报错,可能是导出的路径不正确或者缺少依赖库。根据报错信息来看,系统找不到 'libhello.so' 库。你需要检查导出的路径是否正确,并且确保依赖库已经正确地被链接到动态库中。
原文地址: https://www.cveoy.top/t/topic/Mnp 著作权归作者所有。请勿转载和采集!