Windows下使用Conan配置文件构建C++项目时出现加载配方错误
Windows下Conan加载fmt/8.1.1失败的排查与解决
问题背景
在Windows系统中使用Conan+CMake搭建C++项目,已完成以下操作:
- 通过
pip install conan安装Conan - 创建
conan_common_profile和conanfile.txt配置文件 - 新建build目录并执行
conan install .. --build=missing --profile ../conan_common_profile
配置文件详情
conanfile.txt
[requires] fmt/8.1.1 [generators] cmake
conan_common_profile
[settings] # We are building in Ubuntu Linux os_build=Windows arch_build=x86_64 # We are building to Windows compiler=gcc # Adjust to the gcc version of your MinGW package compiler.version=9.2 compiler.libcxx=libstdc++11 build_type=Release
报错信息
执行命令后触发加载失败错误:
Configuration: [settings] arch_build=x86_64 build_type=Release compiler=gcc compiler.libcxx=libstdc++11 compiler.version=9.2 os_build=Windows [options] [build_requires] [env] ERROR: fmt/8.1.1: Cannot load recipe. Error loading conanfile at 'C:\Users\.conan\data\fmt\8.1.1\_\_\export\conanfile.py': Unable to load conanfile in C:\Users\.conan\data\fmt\8.1.1\_\_\export\conanfile.py File "c:\users\appdata\local\continuum\anaconda3\lib\imp.py", line 171, in load_source module = _load(spec)
解决步骤
1. 修复Profile配置错误
Profile中缺失目标系统os配置,且注释与实际环境矛盾,修改后的配置如下:
[settings] os=Windows os_build=Windows arch_build=x86_64 compiler=gcc compiler.version=9.2 compiler.libcxx=libstdc++11 build_type=Release
os指定目标运行系统,必须明确设置,否则Conan无法正确匹配包的编译规则
2. 处理Conan版本与缓存问题
- 若使用的是Conan 1.x,建议升级到Conan 2.x(fmt新版本对2.x兼容性更好):
pip uninstall conan pip install conan --upgrade - 清理损坏的缓存:
conan cache clean - 手动删除损坏的fmt缓存目录:删除
C:\Users\<你的用户名>\.conan\data\fmt\8.1.1,重新执行conan install
3. 规避Python环境冲突
你当前使用Anaconda Python环境,可能存在依赖冲突:
- 切换到系统原生Python环境,或创建独立虚拟环境安装Conan:
python -m venv conan_env conan_env\Scripts\activate pip install conan
内容的提问来源于stack exchange,提问作者NewbCOder10
相关产品推荐
相关产品推荐

