增量生成和cmake

Incredibuild and cmake

本文关键字:cmake      更新时间:2023-10-16

我正试图在windows上使用Incredbuild 5.0构建一个cmake解决方案,并在几个项目中获得PDB管理错误:

Fatal error:
    Failed to notify object at 0x06C150A0, class is TWaitObjectThread_Notify
    PDB Management: Internal Error: Cannot apply file changes while file is being closed: xxxxx.pdb

我想这可能是cmakefilelist中.cpp文件的顺序,但这没有任何区别。

有几种原因会导致这种情况。最流行的是,您有两个不同的项目试图访问同一个PDB文件。你只在IncrediBuild中看到这一点的原因是,在IncrediBuild中,你的许多项目都是并行执行的(当独立时,项目是按顺序执行的)。检测失败的项目,并验证是否有另一个项目与此项目并行执行,并将其PDB定向到另一个PDB文件。如果不是这样,请告诉我,还有其他不太常见的情况。

(免责声明:我是IncrediBuild的员工)

当然,我们的构建系统试图将同一库的32位和64位版本写入同一文件名是一个问题。串行构建隐藏了错误,但并行构建突出了问题。