我有一个包含大约60个C++源文件的Visual Studio工程。 我可以进行构建,并且没有出现错误。 但如果我立即再次按F7,它总是重新编译约50个源文件。 这很奇怪,因为它没有重新编译所有文件。
我已经设置了“启用最小重建”(/Gm)。 有什么想法是为什么会这样做吗? 没有任何文件的修改日期在未来。
我有一个包含大约60个C++源文件的Visual Studio工程。 我可以进行构建,并且没有出现错误。 但如果我立即再次按F7,它总是重新编译约50个源文件。 这很奇怪,因为它没有重新编译所有文件。
我已经设置了“启用最小重建”(/Gm)。 有什么想法是为什么会这样做吗? 没有任何文件的修改日期在未来。
你的文件日期是否在未来?这可能是因为你更改了时区或系统时钟时间。未来的日期会使IDE混乱,并强制每次按下F7或F5键时重新构建。
我解决了同样的问题。
在我的情况下,编译器显示警告,如果指定了/Gm,则需要/Zi选项。
/Gm启用“最小重建”,需要.pdb文件中的调试信息。因此,如果您不想使用.pdb,请禁用最小重建-这在我的情况下解决了问题。
项目属性 -> "C/C++" -> "输出文件" -> "程序数据库文件名"选项不应该为空。通过从下拉框中选择来设置此选项。选项将被设置为:$(IntDir)\vc90.pdb。同时,vcproj文件中的ProgramDataBaseFileName=""行将被删除。
这样,在构建项目或解决方案时,只有更改过的*.cpp文件才会被重新编译。
经过几天的搜索,我最终找到了解决方案。
当我将项目移动到新电脑时,遇到了这个问题。我已经多次检查了文件的创建日期,这些日期是最新的,但修改日期却很旧(有点奇怪),即使我更改了文件。
简单更新文件即可解决问题。
我遇到了同样的问题,看起来是因为我关闭了浏览信息。属性->C/C++->浏览信息->启用浏览信息->无。唯一的解决方法是重新开启它。顺便说一下,这是针对Xbox 360项目的,我的其他项目没有这个问题。
一个原因是如果源文件之一的“上次修改日期”设置为未来的某个日期:它会重新构建,然后源文件仍然晚于可执行文件。
日期问题可能会发生在源文件位于远程机器(网络共享)的目录中,甚至可能会发生在您机器的时间与运行源版本控制系统的机器的日期不同步时。
检查您的项目是否包含任何在磁盘上不存在的.h头文件。当我删除一个我实际上没有在任何地方包含的头文件,但是忘记从我的VS解决方案导航器中删除它时,这种情况总是发生在我身上。注意:缺少的头文件在构建过程中不会产生任何错误(当未在任何地方#include时)。