QtMsBuild -> Qt::BuildLock

Cro*_*ley 5 c++ qt

我们有一个相当大的解决方案(> 200 个项目),最近切换到 VS2019。我们使用 Qt 5.14 以及 Qt Visual Studio Tools 2.7.1.18 和 QtMsBuild。开始使用 VS 2019 后,我们在构建解决方案时多次收到以下警告:

“...\AppData\Local\QtMsBuild\qt_globals.targets(131,5):警告:Qt::BuildLock[{E42AFBC7-0C5E-441F-B1DB-AE4C9E75F86E}]:正在等待...”

GUID 是解决方案中项目之一的 GUID。有时,构建过程甚至会挂在“等待...”上,但在大多数情况下,除了显示之外,警告似乎没有明显的效果。

我的问题是:这个警告从何而来?为什么会显示?我们怎样才能摆脱它呢?

Veg*_*gie 0

我最近遇到了一个似乎不知从何而来的问题。本期对此进行了描述:Visual C++ Builds Failing due to Log File Access Collision

根据我的调查,Visual Studio 似乎冗余地构建项目依赖项,而不是仅仅引用它们,并且当同时构建具有相同依赖项的多个项目时,它们都会同时命中日志文件(或某个其他文件),从而导致一个失败由于访问限制。

QtMsBuild 开发人员似乎通过向 QtPrepare 目标添加 CriticalSection 任务来防止并发访问解决了这个问题。缺点是这会被报告为警告。