c++ - VS2015 的多处理器编译在运行 cl.exe 时产生 "not enough quota is available to process this command"

标签 c++ windows visual-studio jenkins msbuild

我们正在 Amazon 服务器 (Windows Server 2012 R2) 上为一些 Visual Studio 解决方案运行自动化 Jenkins 构建。其中较大的项目配置了/MP,使用多处理器编译,试图最小化构建时间。

我们也使用它的 /m 标志运行 msbuild

问题是几分钟后我们得到:

TRACKER : error TRK0002: Failed to execute command: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe" @C:\Users\Administrator\AppData\Local\Temp\tmpd19a7e5e426f4ec7baa597ed75516fd4.rsp". Not enough quota is available to process this command.

此问题仅在运行 Jenkins 代理时出现。使用 Visual Studio IDE 一切都很好。从命令提示符运行 MSBuild 时,一切都很好。

知道为什么会发生这种情况,我们可以解决它吗?

运行

WMIC CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors
got
DeviceID  NumberOfCores  NumberOfLogicalProcessors
CPU0      2              4

也许 VS2015 没有正确检测有效处理器的数量,并跨越了同时产生太多进程的某些进程边界?

如有任何帮助,我们将不胜感激。

最佳答案

问题是在 WinRM 中定义了配额,如下所示:https://msdn.microsoft.com/en-us/library/ee309367(v=vs.85).aspx 我们将 MaxProcessesPerShell 的值更改为高于默认值 25 瞧。

关于c++ - VS2015 的多处理器编译在运行 cl.exe 时产生 "not enough quota is available to process this command",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38118041/

相关文章:

C#:如何判断 EXE 是否有图标?

c# - 不使用类 System.Windows.Forms.Form 创建一个窗口?

sql-server - SSRS - 无法连接到数据源

visual-studio - Visual Studio 社区安装崩溃

用于游戏编程的 C++ - 爱还是不信任?

c++ - 在 C++ 的 UI 线程中需要帮助

c# - 将泛型添加到表单

css - 如何使用TFS在线编译SASS?

c++ - Ogre3D 在启动程序时显示异常

c++ - 被 const 逼入绝境:std::map::find() const 重载