【问题标题】:VS2010 Make bug in C++ when changing a .H fileVS2010 更改 .H 文件时在 C++ 中出现错误
【发布时间】:2011-03-08 13:45:26
【问题描述】:

我现在使用 Visual 2010 6 个月了,而且我经常遇到构建错误。这让我回到了视觉 7 的黑暗时代:当有人崩溃时,您的第一个答案是:您是否进行了全部重建?

在我的项目中,如果我修改了我的一个包含文件,它有时不会使用这个包含文件重新编译所有 CPP 文件(它也发生在没有预编译头的情况下,我确实在使用 a.h 的 a.cpp 中发现了这个错误并且没有其他包含文件,所以它并不“复杂”) 所以我的类的一些实例是不正确的。很多时候,如果我修改一个 .H 文件,构建,它会构建项目并说构建成功。在那之后,如果我重新构建所有它发现编译错误,当然我删除了(例如)我班级中的一个成员并且它没有重新编译。

我首先在想,好吧,这是我的项目。 (从 Vs2003、Vs2005、Vs2008 和 Vs2010 转换而来)。所以我尝试另一个项目从头开始一个 VS2010 项目。只有 10 cpp 和 10 .h。没有预编译文件。我有完全相同的错误!

安装了 SP1(修复了查找窗口!!)这个 bug 仍然存在。

任何人有解决方案或遇到与我相同的错误,在谷歌上找不到任何相关信息?

【问题讨论】:

  • 这是一个非常晦涩难懂的故障模式。使用 connect.microsoft.com 告诉开发人员。但是,您确实必须更好地记录您的问题,如果他们无法重现问题,他们会很快将其驳回。也发生在这里。

标签: c++ visual-studio-2010 build rebuild


【解决方案1】:

几个想法:

  1. 如果您的系统时钟或文件上的修改日期出现异常,有时可能会发生这种情况。尝试重置修改日期。也许最简单的方法是压缩项目,然后从顶部提取。当然也删除您的.suo.ncb 文件。

  2. 确保.h 文件位于项目树中。如果是#included,但不是专门在项目树中,我不相信VS会一直识别变化。

【讨论】:

  • 我们#include 标头,但不要将它们添加到项目中。磁盘上的文件更改会导致我们的项目重新构建。另外,我认为 .ncb 文件仅用于智能感知,而不是识别标头更改。不过,我确实同意时间戳评论。或许可以找到一个“触摸”实用程序来更新时间戳。
猜你喜欢
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多