修改 Application.mk 构建脚本 :
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 APP_PLATFORM := android-8
分析 Android.mk 构建脚本 :
include $(BUILD_EXECUTABLE)
include $(BUILD_EXECUTABLE) 配置表示生成可执行文件 ;
include $(BUILD_SHARED_LIBRARY) 配置表示生成 .so 动态库 ;
include $(BUILD_STATIC_LIBRARY) 配置表示生成 .a 静态库 ;
使用最低版本的 NDK 进行编译 , 使用高版本 NDK 编译各种报错 ;
使用 16.1.4479499 版本的 NDK 进行编译 :
>D:\001_Programs\001_Android\002_Sdk\Sdk\ndk\16.1.4479499\ndk-build.cmd
编译要很长时间 , 输出如下结果后 ,
最终在 D:\develop\7zip\p7zip_16.02\CPP\ANDROID\7zr\libs\armeabi-v7a 目录下 , 生成了可执行的 7zr 程序 ;
总共生成了 4 44 种 CPU 架构的可执行文件 ;
编译过程中其它生成文件如下图 :
编译时遇到的错误 :
【错误记录】Android Studio 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | 指定 APK 打包动态库的 CPU 架构 )
【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )
三、参考资料
参考资料 :
7-Zip 官网 : https://www.7-zip.org/
Android NDK 编译构建脚本参考文档 :
ndk-build 脚本 : https://developer.android.google.cn/ndk/guides/ndk-build
Android.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/android_mk
Application.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/application_mk
博客资源 : 源码 , 编译后的可执行文件, 在 7zip\p7zip_16.02\CPP\ANDROID\7zr\libs\ 目录下 ;
下载地址 : https://download.csdn.net/download/han1202012/18215890