繁体   English   中英

使用 VS Build Tools 安装了 C++,但找不到 CL.exe

[英]Installed C++ with VS Build Tools, but can't find CL.exe

我们有一个基于docker pull mcr.microsoft.com/dotnet/framework/sdk:4.8的 Jenkins 构建代理

容器的部分 Docker 文件会引入额外的工作负载,如下所示

vs_buildtools.exe --quiet --wait --norestart --nocache modify \
--installPath "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" \
--add Microsoft.VisualStudio.Workload.VCTools \
--add Microsoft.VisualStudio.Workload.DataBuildTools \
--add Microsoft.VisualStudio.Workload.UniversalBuildTools

但是 C++ 项目的构建失败,说他们找不到 CL.EXE。

我已经用谷歌搜索了这个问题,每个遇到错误说他们找不到 CL.EXE 的人都得到了答案,只需运行vsvars.bat并为他们解决了这个问题。 但 CL.exe物理上不存在 我们去 C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.31.31103 并没有 bin 文件夹。
我们在整个容器中搜索了 cl.exe,并在某个 c:\windows\WinSxS\ 文件夹中看到了它,我们尝试将其添加到 PATH 环境中,但它收到了一个错误,提示它与 Windows 版本不兼容。

是否有某些原因它不会安装实际的编译器?

您还需要传递--includeRecommended--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64作为参数。

MSVC v143 - VS 2022 C++ x64/x86 构建工具(最新)VCTools 工作负载包含的组件中列为推荐,因此默认情况下不与Microsoft.VisualStudio.Workload.VCTools一起安装。

这是来自VS Installer 命令行参数参考--add参数的描述:

在安装或修改命令期间,此可重复参数指定要添加的一个或多个工作负载或组件 ID。 已安装工件的必需组件,但未安装推荐或可选组件。 您可以使用--includeRecommended和/或--includeOptional参数全局控制其他组件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM