3

我有几个VS 2008项目(C++),每次启动构建时都会链接,即使没有任何更改。即我选择“构建解决方案”,它编译和链接,我再次选择“构建解决方案”,它不编译任何东西,但再次链接。尽管没有任何改变,Visual Studio链接

这很烦人,我检查了所有可能导致它再次链接的东西。 有没有办法找出为什么Visual Studio会做或跳过某些构建步骤?

任何输入赞赏!

回答

3

我有一段时间来重温这个问题,同事给了我一个提示,使用sysinternals中的“进程监视器”来找出哪个文件丢失了。

瞧,它工作!事实证明,即使应用程序不需要它,Visual Studio仍坚持链接一堆库。由于一个不幸的(我猜...)事件链,其中一个默认的库路径从Visual Studios全局设置中消失了,所以VS无法再找到这个库(在我的例子中是“coredll.lib”)。

这并不影响最终输出,因为这个库根本不需要,但它每次都会触发一次重新链接。

有两种可能的解决方法: 1)恢复的路径,这LIB在全球的Visual Studio设置 2)使用“$(NOINHERIT)”在AdditionalLibraries摆脱不必要的LIB的。

我使用了解决方案#1,因为#2需要针对每个项目的每个配置完成,因为无法通过Property Sheets完成。

0

长镜头的位,但检查任何依赖的DLL上的日期/时间戳。 If they are in the future then a rebuild will occur.

编辑:也试过在编辑器中打开.vcproj文件,检查是否有异常?如果可能的话,你也可以尝试从头开始重新创建它们。

+0

好主意,但没有运气。我检查了我所有的硬盘,并没有从未来的单个文件... 所以我想VS正在期待一个不存在的文件... – 2009-09-14 09:49:35

1

重建也可能由不存在和未使用的.h属于该项目的文件引起。由于它们未被使用,所以没有关于丢失文件的警告或错误。

Sysinternals使用前面提到的“Process Monitor”是找出原因的一个很好的提示。

相关问题