【发布时间】:2020-09-10 14:34:37
【问题描述】:
- 操作系统: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
所以我认为不是双引号落下
【问题讨论】:
-
您确定“CMake 错误:无法创建命名生成器”是您在运行
cmake期间收到的唯一消息吗?通常,此类消息伴随着其他与问题相关的消息。 -
@Tsyvarev 这是我所看到的一切——只有这一行和后面的一组可以使用的生成器。首先是“Visual Studio 16 2019”。我知道当我使用 Python 脚本时,环境变量不会传递给 cmake。但不知道该怎么做。
-
好的。现在问题很清楚了:
"Visual Studio 16 2019"中的双引号成为生成器名称的部分。 -
@Tsyvarev,看看我帖子的Update1,它没有帮助(
-
规范
-G "Visual Studio 16 2019"是用于命令行,其中单独的单词表示单独的参数,双引号用于将分隔的单词分组到单个参数中。在 python 代码中,subprocess.call的每个参数都已经是一个 single 参数,并且每个内部空格(或引号)都成为参数的一部分。只需使用'-G', 'Visual Studio 16 2019'或'-GVisual Studio 16 2019。这就是 单个 字母选项在大多数情况下的工作方式:空格分隔的选项名称和值-<opt> <value>,或组合:-<opt><value>