Windows10下用Android Studio编译ics-openvpn缺失文件如何解决
错误根因
两个报错的核心原因如下:
- 缺少项目依赖的Git子模块,asio等依赖库未正确下载,导致头文件缺失
- CMake拷贝目标目录不存在,导致生成的可执行文件无法拷贝到指定路径
解决步骤
1. 拉取完整依赖子模块
如果你当前使用的是直接下载的zip压缩包,没有Git版本信息,先删除现有项目,拉取ics-openvpn官方Git仓库的源码,切换到v0.7.22版本标签后,在项目根目录执行如下命令拉取所有子模块:
git submodule update --init --recursive
如果项目已经是Git仓库,直接执行上述命令即可,拉取完成后asio.hpp头文件缺失的问题会直接解决。
2. 创建拷贝目标目录
CMake不会自动创建不存在的目录,你需要手动在项目根目录(包含main文件夹的上层目录)创建build/ovpnassets文件夹,或者修改main模块的CMakeLists.txt,在copy命令前增加目录创建逻辑:
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../build/ovpnassets)
3. 适配Windows环境优化
- 缩短项目路径:将项目放在盘符根目录(例如
D:\ics-openvpn-0.7.22),避免Windows系统260字符路径长度限制导致的编译错误 - 确认NDK版本:v0.7.22版本适配NDK 21.x,你当前使用的NDK 21.4符合要求,不要升级到NDK 22及以上版本避免API兼容问题
- 清理缓存重新构建:操作完成后在Android Studio点击
File -> Invalidate Caches / Restart,重启后重新同步Gradle执行构建即可。
内容的提问来源于stack exchange,提问作者Kaguya
相关产品推荐
相关产品推荐

