每次在Visual Studio 2010中构建Visual C ++解决方案时,整个项目(而不是整个解决方案)都会重新编译。
必须有一个标志或配置,以使VS只编译已更改的文件+依赖文件。它在哪里?
更新
答案 0 :(得分:4)
如果另外收到类似的消息:
创建“。\ Release \ SomeLib.unsuccessfulbuild”,因为指定了“AlwaysCreate”。
构建时,原因可能是您的某个项目引用了磁盘上不存在的头文件(请参阅here和here)。
第一个链接还包含一个小C#脚本来检查这种情况。要修复,只需从项目中删除对不存在的头文件的引用。
<强>更新强>
您可能在“创建”上设置了预编译标题设置。要进行修复,请在解决方案浏览器中右键单击您的项目,然后选择: properties - &gt; C / C ++ - &gt;预编译标题 - &gt;预编译标题。将设置从创建更改为使用或不使用预编译标题。
答案 1 :(得分:3)
默认情况下,VS的行为应该与您希望的一样;听起来有些东西是片状的。清理项目,并删除您的设置文件(例如 .suo / vcproj。 .user / etc)。这有几个原因,其中一些我见过:
答案 2 :(得分:1)
我有同样的问题,除非我没有理由地开始,没有我进行任何项目配置更改。
我会编辑一个文件,点击构建,然后重建整个项目。
经过多次艰苦的实验,我发现关闭'Minimal Rebuild'让问题消失了。有了这个,我可以再次更改一个文件,它只会编译那个文件。
奇怪的是,一旦我成功完成了最小化重建的构建,我可以将其重新打开,一切都恢复正常。
让我觉得某个地方的某些缓存文件可能已经损坏了?我曾尝试删除所有中间目录,但是如果它是一个损坏的文件,我认为它不在我的项目目录中。
希望这有帮助。
答案 3 :(得分:1)
tul的帖子向我们推进,因为我们也有一些项目,总是重新编译。结果我发现:
FIX就像接下来的步骤一样简单:
DONE。甚至无需重新编译。下一个版本会更快。
答案 4 :(得分:0)
所以,我的一个项目遇到了同样的问题。首先,我可以通过选择:
来调试编译器输出- &GT;工具 - &gt;选项 - &gt;项目和解决方案 - &gt;构建和运行 - &gt; MSBuild项目构建输出详细程度 - &gt;详细。
事实证明,有人将项目设置为始终为所有文件(/ Yc)创建预编译头文件。我更改了下面列出的选项。
- &GT;配置属性 - &gt;预编译标题 - &gt;使用(/ Yu)
然后我将stdafx.cpp的相同选项设置为(/ Yc)。因此,stdafx.cpp的编译会创建预编译头,而所有其他.cpp文件都会使用预编译头。这是默认情况,我不确定它是如何改变项目的。
此外,我已将所有编译器设置更改为在所有项目中保持一致,包括:
1)设置:C / C ++ - &gt;预编译标题 - &gt;预编译标题 - &gt;使用(/ Yu) 开关:/ Yu 原因:更快的构建时间。
2)设置:C / C ++ - &gt;一般 - &gt;调试信息格式 - &gt;用于编辑和继续的程序数据库
开关:/ ZI
原因:启用编辑并继续,从而提高调试功能。
3)设置:C / C ++ - &gt;代码生成 - &gt;启用最小重建 - &gt;是 开关:/ Gm 原因:允许并加速增量构建,这是/ ZI所必需的。
希望有所帮助。我花了很多时间搞乱我们的项目构建设置和阅读Stack Overflow的帖子,最后,我想念C#。