如何使用Makefile编译安卓版OpenConnect应用及报错排查
安卓版OpenConnect编译问题解答
操作流程正确性判断
你当前的操作流程不符合最新版OpenConnect仓库的安卓编译要求,存在问题。该仓库android目录下的直接make方案是为旧版Android NDK设计的,和现行NDK版本不兼容。
报错原因
报错核心是NDK版本与Makefile依赖规范不匹配:
- 旧版Android NDK的
make_standalone_toolchain.py脚本支持--system参数,从NDK r19版本开始,该参数被正式移除,同时独立工具链的构建逻辑也做了全量更新 - 仓库中android目录下的Makefile仍基于旧版NDK编写,调用工具链生成脚本时携带了已被删除的
--system参数,因此直接执行make会抛出未知参数错误
解决方案
方案一:使用匹配的旧版NDK编译(操作最简便)
- 下载Android NDK r18b版本,该版本是最后一个支持
--system参数的NDK版本 - 配置环境变量指向你本地存放的NDK路径,执行命令:
export NDK=/path/to/your/android-ndk-r18b - 重新进入openconnect/android目录执行
make即可完成编译
方案二:修改Makefile适配新版NDK
- 打开openconnect/android目录下的Makefile,定位到第83行附近调用
make_standalone_toolchain.py的代码段 - 删除命令中的
--system参数,同时根据你当前使用的NDK版本调整工具链生成的相关参数,适配新NDK的调用规范 - 保存修改后重新执行
make即可
内容的提问来源于stack exchange,提问作者sasha-ld
相关产品推荐
相关产品推荐

