【问题标题】:VS2008 - Project Out of Date, not a line of code changedVS2008 - 项目过时,没有一行代码改变
【发布时间】:2012-09-06 04:05:44
【问题描述】:

我在使用 Visual Studio 2008 时遇到了一个非常奇怪的问题。我在 SO 上搜索了与“项目过期”对话框类似的问题,但他们的问题是他们使用的头文件已被弃用/否不再存在,或者在构建多项目解决方案时出现问题,或者它有其他依赖项。

我的项目是一个 Win32 控制台应用程序,我去了文件->新建->项目...->Win32 控制台应用程序。我使用了默认设置(检查了预编译的标头),并且我没有更改项目中的任何一行代码,只要项目创建我按下调试按钮(尽管我在设置时遇到完全相同的问题构建目标发布)。

[main.cpp]

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

^ 非常标准的源文件,对吧?好吧,无论我在任何项目中构建什么,VS2008 都告诉我它已经过时了。为什么?这个问题可能不会阻止我构建项目,但我非常希望一切都井井有条,再也不用看到这个对话框了。再次,我查看了类似的问题,但他们的解决方案涉及消除一些额外的依赖或类似的东西,这些都不适用于我的情况。

为什么 VS2008 会挑剔自己的项目模板?

【问题讨论】:

  • 不检查预编译头会怎样?
  • 没什么,只是想提供尽可能多的信息。唯一的意思是标题将在每次构建时编译,而不是在 .pch 文件中编译一次,仍然得到相同的对话框
  • 是的,我知道。 See here 提供一长串解决方案(它们也应该主要适用于 vs2008)。另外,请阅读您的BuildLog.htm 并检查警告等,这应该会给您提示问题所在。
  • 是的,我误解了你的意思,因为我暗示你不知道预编译头文件的作用,哈哈。对于 BuildLog 建议 +1,我没想过要检查,但我已经删除了所有给我警告的测试项目,我最后只是检查了“不要再向我显示此对话框”,我刚刚想到这就是我不再收到警告 facepalm 的原因(以为它已修复哈哈)

标签: c++ winapi visual-studio-2008 build console


【解决方案1】:

如果源文件(包括包含文件)以某种方式在未来某个时间获得了日期时间,那么编译器会认为目标文件总是过时的。

【讨论】:

  • 我很抱歉,但我不太明白“在未来某个时间得到一个日期时间”,你是说这个问题与文件上的实际时间戳有关吗?我可以编辑我的帖子以显示所有包含的文件。
  • 我说这是要检查的东西。有时,源代码控制系统所在的服务器的日期可能不正确。有时,它是第 3 方文件。假设源文件(您的源文件或包含的头文件或 lib 文件等)上的日期时间是 2050 年 12:00 AM。当编译器决定要构建什么时,它会看到目标文件和 exe/dll 文件比源文件旧并重新构建。
  • 哦,好吧,我明白你的意思了。虽然我没有使用源代码控制系统,但它说它在新项目的第一次构建中已经过时了。我做了几个不同的测试项目解决方案,前 3 个给了我相同的对话框,但最后一个没有。真奇怪。但是感谢您对此进行解释,因为我认为该对话框意味着项目中的某些内容已被弃用,但现在我看到它与时间戳有关,我将继续接受这个作为答案,看看我现在如何更好地理解这个问题,并且由于某种奇怪的原因,我不再拥有它了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 2022-12-09
  • 2014-09-10
  • 1970-01-01
相关资源
最近更新 更多