我有几个VS 2008项目(C ++),每次开始构建时都会链接,即使没有任何变化。即我选择“构建解决方案”,它编译和链接,我再次选择“构建解决方案”,它不编译任何东西,但再次链接。
这很烦人,我检查了可能导致它再次链接的所有内容。 有没有办法找出Visual Studio的原因或跳过某些构建步骤?
感谢任何输入!
答案 0 :(得分:3)
我有时间重新审视这个问题,而且一位同事给了我一个提示,使用sysinternals中的“进程监视器”来找出丢失的文件。
看,它有效!事实证明,即使应用程序不需要它,Visual Studio也会坚持链接一堆lib。由于一个不幸的(我猜...)事件链,其中一个默认的库路径从Visual Studios全局设置中消失了,所以VS再也找不到这个lib了(在我的例子中是“coredll.lib”)。
这不影响最终输出,因为根本不需要这个lib,但它每次都会触发重新链接。
有两种可能的修复方法: 1)在全局Visual Studio设置中恢复此lib的路径 2)在AdditionalLibraries中使用“$(NoInherit)”来删除不需要的lib。
我使用了解决方案#1,因为需要为每个项目的每个配置完成#2,因为无法通过Property Sheets完成。
答案 1 :(得分:1)
重建也可能是由属于项目的不存在和未使用的 .h 文件引起的。由于它们未被使用,因此没有关于丢失文件的警告或错误。
如前所述,使用Sysinternals的“Process Monitor”是一个很好的暗示,可以找出原因。
答案 2 :(得分:0)
远程镜头,但检查您拥有的任何相关DLL上的日期/时间戳。 If they are in the future then a rebuild will occur.
编辑:您是否尝试在编辑器中打开.vcproj文件以检查是否有异常?如果可能的话,您也可以尝试从头开始重新创建它们。