在柯南配置文件内部,我们可以选择要包含的配置文件,
compiler.version = msvc
compiler.version = 193
有人可以向我解释一下版本控制是如何工作的吗
msvc
。在settings.yml
里面我可以看到可能的选项列表,
msvc:
version: [170, 180, 190, 191, 192, 193]
但是,这些与 Microsoft 的版本控制不一致。正如文档所说,_MSC_VER distinguishes between major and minor releases. It has the form: MMNN.
。不过选择的时候,
compiler=Visual Studio
compiler.version=17
这与之前的公开版本有一致的映射,例如查看发布历史记录。总之,conan
是如何想出这些
msvc
编译器版本的?
_MSC_VER
编译器版本的前 3 位数字,原因如下:
cl
MSVC 编译器和用它构建的二进制文件的二进制兼容性对于相同的 IDE 版本通常非常好,并且到目前为止 IDE 版本(直到 VS 17.10 更新)与编译器版本的前 3 位数字匹配,也就是说,VS15-2017 有默认编译器
_MSC_VER = 191X
,VS16-2019 有
_MSC_VER = 192X
,VS17-2022 有
_MSC_VER = 193X
_MSC_VER
的最后 4 位数字)也报告了一些二进制文件不兼容的情况,但这些问题非常特别,并且非常特定于某些在其上调整其代码的项目。
compiler.update=[0-9]
设置来实现。