问题描述
- 操作系统:Windows 10
- CMake:3.18.2
- MSVC:16.7.3
当我使用命令行时,可以使用以下命令行生成构建
cmake -B "D:\Builds" -S "D:\src" -G "Visual Studio 16 2019" -A "x64"
当我使用以下Pytnon脚本时:
subprocess.call([
'...\cmake.exe','-B "D:\Builds"','-S "D:\src"','-G "Visual Studio 16 2019"','-A "x64"'
])
我收到一个错误:
CMake Error: Could not create named generator "Visual Studio 16 2019"
为什么会发生以及如何解决?
PS:这不是任何问题的重复,这是新的
更新1 : 当我将生成器行更改为
'-G Visual Studio 16 2019'
我看到以下错误:
CMake Error: Could not create named generator Visual Studio 16 2019
所以我认为不是双引号掉了
解决方法
对我来说,通过删除 Python 中引号内的引号解决了类似的问题,如上面@Tsyvarev 的评论所暗示的那样。爱荷华州:
subprocess.call(['cmake','-G','"Visual Studio 16 2019"']) # Fails
subprocess.call(['cmake','Visual Studio 16 2019']) # Succeeds
或者如果你想要一个生成器参数:
subprocess.call(['cmake','-G"Visual Studio 16 2019"']) # Fails
subprocess.call(['cmake','-GVisual Studio 16 2019']) # Succeeds
,
您似乎已经安装了两个版本的CMake。确保您的Python脚本中使用的版本大于或等于CMake 3.14版本。 Visual Studio 16 2019
生成器在较早的CMake版本中不可用。
您可以通过添加以下内容来测试Python脚本使用的CMake版本:
subprocess.call([
'...\cmake.exe','--version'
])