Conan配置文件中MSVC编译器版本选择逻辑及版本来源咨询
Conan中MSVC编译器版本的规则说明
Conan针对MSVC提供了两种不同的版本配置逻辑,对应两种compiler类型:
1. 当compiler=msvc时
- 这里的
compiler.version直接对应微软MSVC编译器的_MSC_VER宏数值(采用MMNN格式,即主版本号+次版本号的组合) - 你在
settings.yml中看到的可选版本列表[170, 180, 190, 191, 192, 193],就是不同MSVC工具链对应的_MSC_VER值,对应关系如下:170→ Visual Studio 2012的MSVC工具链180→ Visual Studio 2013的MSVC工具链190→ Visual Studio 2015的MSVC工具链191→ Visual Studio 2017的MSVC工具链192→ Visual Studio 2019的MSVC工具链193→ Visual Studio 2022的MSVC工具链
- 这种配置方式直接指向底层的MSVC编译器工具链版本,更偏向于编译器本身的技术版本标识。
2. 当compiler=Visual Studio时
- 这里的
compiler.version对应Visual Studio的产品版本号,比如17对应Visual Studio 2022,16对应Visual Studio 2019,和微软公开的VS版本历史完全一致 - Conan会自动将这个IDE产品版本映射到对应的MSVC工具链版本(比如
Visual Studio 17会对应_MSC_VER=193) - 这种配置方式面向IDE产品的版本标识,更符合开发者对Visual Studio版本的认知习惯。
简单来说,两种配置方式只是从不同维度指定同一款MSVC工具链,Conan内部会维护两者的映射关系,满足不同场景下的版本指定需求。
内容的提问来源于stack exchange,提问作者user12388651
相关产品推荐
相关产品推荐

