能否在CMake命令行参数或conanfile.py中指定VCToolsVersion?
解决方案
你提到的通过cmake.configure()参数指定VC工具版本的方案是可行的,共有三种实现方式都不需要修改上游仓库代码:
- 方式1:直接传入CMake参数
注意configure的args参数接收列表类型,不要传单个字符串,正确示例:
def build(self): cmake = CMake(self) cmake.configure(args=["-Dvcvars_ver=14.24"]) cmake.build()
- 方式2:预先设置环境变量(兼容性更强)
在实例化CMake对象前设置VCToolsVersion环境变量,会自动被VC工具链和CMake识别:
import os def build(self): os.environ["VCToolsVersion"] = "14.24" cmake = CMake(self) cmake.configure() cmake.build()
- 方式3:使用Conan内置配置(推荐Conan 2.x使用)
Conan 2.x提供了官方的vc版本配置项,无需直接操作环境变量或CMake参数:
def build(self): self.conf.define("tools.build:vcvars_ver", "14.24") cmake = CMake(self) cmake.configure() cmake.build()
以上三种方案的效果和你原本想在上游仓库加CMakeSettings.json的效果完全一致,都可以指定使用14.24版本的VC工具链完成构建。
内容的提问来源于stack exchange,提问作者Farahi
相关产品推荐
相关产品推荐

