我有一个包含大约60个C++源文件的Visual Studio工程。 我可以进行构建,并且没有出现错误。 但如果我立即再次按F7,它总是重新编译约50个源文件。 这很奇怪,因为它没有重新编译所有文件。
我已经设置了“启用最小重建”(/Gm)。 有什么想法是为什么会这样做吗? 没有任何文件的修改日期在未来。
我有一个包含大约60个C++源文件的Visual Studio工程。 我可以进行构建,并且没有出现错误。 但如果我立即再次按F7,它总是重新编译约50个源文件。 这很奇怪,因为它没有重新编译所有文件。
我已经设置了“启用最小重建”(/Gm)。 有什么想法是为什么会这样做吗? 没有任何文件的修改日期在未来。
请检查您的项目的程序数据库文件名设置。由于某些原因,如果将其设置为目录名称(例如"$(IntDir)\"
),即使您没有生成PDB文件(即“调试信息格式”设置为“禁用”),它有时也会导致VS每次重新生成您的项目。
这是VS2008中的一个错误;我尚未在VS2010中重现此错误,但我的测试并不充分,因此我不能确定该行为是否存在于VS2010中。
项目重建存在类似的问题。 每次按F7键时,Visual Studio不会重新编译,而是重新链接项目。
修复很简单。尝试在编辑器中打开包含在项目中的所有文件(从“解决方案资源管理器”中双击每个文件),并从解决方案中删除不存在的文件。
我们经常在这里做以下操作:
对我来说,禁用“最小重建”(配置属性>C/C++>代码生成)解决了这个问题。编译器甚至留下了一个线索:
1>cl:命令行警告D9007:‘/Gm’需要‘/Zi或/ZI’;选项被忽略
虽然我必须指出,编译器并没有像它所说的那样忽略该选项。