使VC ++重新编译所有文件

时间:2013-08-01 17:33:31

标签: visual-c++ visual-studio-2012

我正在使用Visual Studio IDE和VC ++编译器编写一个简单的C ++应用程序。

在这个应用程序中,我有一个错误的文件,也会影响其他文件。当我编译它时,正如预期的那样我得到错误。现在,如果我从项目中删除对该文件的所有引用,然后运行它,编译器仍将退出错误。在编译消息中,我然后看到错误文件的文件名。防止这种情况发生的唯一方法是删除该文件的所有内容,或删除该文件,然后重新编译它。

我的猜测是,因为VC ++是“智能”的,它可以节省编辑,当它们不受影响时,它不会重新编译它。但是因为错误的文件会影响其他文件,所以一些编译错误(不是全部)只会停留。

有谁知道如何禁用此类行为?

3 个答案:

答案 0 :(得分:0)

要重新编译所有可以重建所有文件的文件,或者进行干净的构建。 是的VC ++将保存编译,如果事情没有改变,它可能会说是最新的。 我不认为你可以禁用它,但一个干净的构建应该能够解决它。如果这是整个问题,还要检查它是如何链接的,那么你应该能够删除对文件的引用。

构建应该在构建选项卡下。

答案 1 :(得分:0)

你能否显示错误?

如果文件包含实际的功能代码,那么修复编译错误? 如果文件不包含功能代码,那么它在项目中的作用是什么。

我希望这个“错误”文件是包含在其他c ++文件中的标题(.h)文件,因此当它尝试编译c ++文件时,它会为每个c ++文件生成错误(或更多)。 如果您只是从IDE项目中删除该文件;编译器仍将包含该文件(因为它仍然存在于磁盘上);并将继续产生错误。

如果您实际删除了磁盘上的文件,那么您将遇到其他类型的错误。

在所有情况下,只需修复编译错误。

答案 2 :(得分:0)

MSBuild和Visual C ++编译器到优秀的作业,当您进行更改(如添加或删除文件)时,会生成正确的二进制文件。有可能,即使没有完整的重建,编译的可执行文件也是正确的。如果您看到意外行为,很可能是由以下某种原因引起的:

  1. 检查Visual Studio是否已配置为在运行项目之前构建项目。检查工具→选项...→项目和解决方案→构建并运行

    下的以下选项
    • 构建之前:保存所有更改
    • 在运行时,当项目过期时:“提示构建”或“始终构建”
    • 运行时,发生构建或部署错误时:“提示启动”或“始终启动”
  2. 如果Visual Studio询问您是否要运行程序的旧版本,则可能通过删除文件引入了编译错误,因此编译的二进制文件肯定会过时,直到您更正它为止

  3. 如果您的项目包含直接或间接#include "yourRemovedFile"的文件,则从项目中删除该文件可能无效。

  4. Visual Studio错误列表独立于编译器报告问题。您可能会看到报告的旧错误与您的项目不再相关但尚未从UI中清除。在这些情况下,当您运行您的程序时,您仍会得到相同的结果。您还可以通过重新启动Visual Studio并查看错误消息是否仍然存在来查看这是否是您的问题。