我需要构建一个使用 SCons 的依赖项,我需要使用 VC++2017 构建它,因为我拥有的另一个依赖项无法使用 VC++2019 构建。
SCons 成功检测到 VC++2019 (v14.2),但未检测到 VC++2017 (v14.1):
c:\Python27\Scripts\scons [...] --msvc-version=14.1 [...]
scons: Reading SConscript files ...
scons version: 3.1.1
python version: 2 7 13 'final' 0
scons: warning: VC version 14.1 not installed. C/C++ compilers are most likely not set correctly.
Installed versions are: ['14.2', '14.0', '11.0']
[...]
C++ compiler $CC does not work
我已经安装了 Visual Studio 2019 Enterprise 和 Visual Studio 2019 Build Tools,并且为这两者安装了适用于 v14.1 和 x86/x64 的平台工具/编译器。使用 VC++2017 平台工具进行编译在 Visual Studio 2019 以及使用 MSBuild 中运行良好,因此问题似乎仅出在 SCons 上。
SCons 如何检测 VC++2017 和 VC++2019,我应该从哪里开始寻找问题?
(有关于此的旧话题,但大多数是关于人们想知道为什么使用注册表和 vcvars.bat 的“经典”检测/配置方法不再有效,所以这些没有帮助)
最佳答案
对于当前的 scons,它会相信它从 vswhere.exe
返回的内容,对于该工具被认为是权威的版本——2017 年和 2019 年。你可以尝试看看它给你带来了什么。
vswhere -products * -property installationPath
该信息用于帮助找到所需的 vars.bat 文件,该文件导入所需的设置。
关于c++ - SCons 检测到 Visual C++ v14.2 (2019) 但未检测到 v14.1 (2017),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57477926/