c++ - 编译随机失败 : "cannot open program database"

标签 c++ visual-studio visual-studio-2005 compiler-errors nightly-build

在使用 Visual Studio 2005(版本 8.0.50727.762)进行长时间编译期间,有时在某些项目的几个文件中会出现以下错误:

fatal error C1033: cannot open program database 'v:\temp\apprtctest\win32\release\vc80.pdb'

(提到的文件是项目临时目录中的 vc80.pdbvc80.idb。)

同一项目的下一次构建成功。没有其他可以访问相同文件的 Visual Studio 打开。

这是一个严重的问题,因为它使夜间编译变得不可能。

最佳答案

可能是防病毒软件或类似程序在写入时接触了 pdb 文件 - 在这种情况下,防病毒软件最有可能是可疑的。恐怕我只能根据我过去在我们商店设置夜间构建的经验给你一些一般性的指导。其中一些可能听起来微不足道,但为了完整起见,我将它们包括在内。

  • 首先,最重要的是:确保从头开始。也就是说,在开始 nightly 之前强制删除构建的输出目录。
  • 如果您的夜间机器上有防病毒软件、反 spy 软件或其他此类程序,请考虑将其删除。如果这不是一个选项,请将您的 obj 文件夹添加到程序的排除列表中。
  • (可选)考虑使用 VCBuild 或 MSBuild 等工具作为夜间事件的一部分。如果您在多核机器上,我认为使用 MSBuild 会更好。我们将 IncrediBuild 用于 nightlies,将 MSBuild 用于发布,从未遇到您描述的问题。

如果没有其他方法,您可以在构建开始几个小时后安排一个看门狗脚本并检查其状态;如果构建失败,看门狗应该重新启动它。这是一个丑陋的黑客,但总比没有好。

关于c++ - 编译随机失败 : "cannot open program database",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/126751/

相关文章:

c++ - 没有可行的重载运算符来引用 map

visual-studio - 自 Visual Studio 2015 更新 3 以来无法解析的外部符号 : boost python linking error if destructor is virtual

ios - 没有团队选择使用 VS Cordova 工具进行 iOS 构建

visual-studio - "Docker build path not found"在 docker 支持 Visual Studio 项目

winforms - Visual Studio - 在隐藏代码中搜索对象使用情况的快速方法

c# - 数据 GridView : How to enable multi row select but disable multi cell select?

visual-studio-2008 - 2005 年开启 C# 2008

c++ - OpenCV 从一组点绘制一条线

c++ - 使用已删除的函数 ‘sf::RenderWindow& sf::RenderWindow::operator=(const sf::RenderWindow&)’

c++ - 'cont'的多重定义