conan入门(十八):Cannot recognize the Windows subsystem, install MSYS2/cygwin or specify a build_require

絕刀狂花
发布: 2025-08-28 10:09:37
原创
979人浏览过

windows下进行ndk交叉编译boost时,遇到

libiconv/1.16
登录后复制
库报错,提示无法识别windows子系统,需要安装msys2/cygwin或指定
build_require
登录后复制
来解决这个问题。以下是解决方案的详细说明:

在Linux下进行交叉编译时不会遇到此问题,因为在Windows下编译

libiconv/1.16
登录后复制
需要依赖MSYS2环境来执行bash shell脚本。问题的根源在于没有指定
-pr:b
登录后复制
参数(即
--profile:build
登录后复制
)。

通常情况下,交叉编译时只需使用

-pr:h
登录后复制
参数指定目标主机的profile文件即可,但对于
libiconv/1.16
登录后复制
这样的库,在Windows下编译时必须使用MSYS2环境。

以下是

libiconv/1.16
登录后复制
conanfile.py
登录后复制
中相关的代码片段:

def build_requirements(self):
    if self._settings_build.os == "Windows" and not tools.get_env("CONAN_BASH_PATH"):
        self.build_requires("msys2/cci.latest")
登录后复制

如果不指定

-pr:b
登录后复制
参数,上述条件将不成立,导致编译
libiconv
登录后复制
时没有MSYS2环境。

因此,在这种情况下,进行交叉编译时不仅需要使用

-pr:h
登录后复制
指定目标主机的profile文件,还需要使用
-pr:b
登录后复制
参数指定编译主机的profile。通常情况下,
-pr:b
登录后复制
参数可以设置为
default
登录后复制
,使用默认的profile。

正确的执行命令如下:

千图设计室AI海报
千图设计室AI海报

千图网旗下的智能海报在线设计平台

千图设计室AI海报 172
查看详情 千图设计室AI海报
$ conan install boost/1.69.0@ -pr:h android_armv7a_clang -pr:b default --build missing  -o without_stacktrace=True
登录后复制

指定了

-pr:b default
登录后复制
后,执行时会自动下载并安装MSYS2。

conan入门(十八):Cannot recognize the Windows subsystem, install MSYS2/cygwin or specify a build_require

关于Boost的交叉编译,可以参考之前的博客:《conan入门(十):Windows下Android NDK交叉编译Boost》。

conan入门(十八):Cannot recognize the Windows subsystem, install MSYS2/cygwin or specify a build_require

以上就是conan入门(十八):Cannot recognize the Windows subsystem, install MSYS2/cygwin or specify a build_require的详细内容,更多请关注php中文网其它相关文章!

Windows激活工具
Windows激活工具

Windows激活工具是正版认证的激活工具,永久激活,一键解决windows许可证即将过期。可激活win7系统、win8.1系统、win10系统、win11系统。下载后先看完视频激活教程,再进行操作,100%激活成功。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号