C ++:LINK:调试\\ XXXXX.exe找不到或不通过最后的增量环节建立; 正在执行完全

2019-07-22 09:01发布

使用Visual Studio 2008 SP1,
这条线:

LINK : debug\XXXXX.exe not found or not built by the last incremental link; performing full link

似乎每一次我编译项目,无论我的变化有多小制作。
可能是什么原因是什么?

Answer 1:

老问题,但以防万一有人它仍然是一个问题(这是...)。

增量链接是生成清单文件不兼容(PROJ选择采用>链接>清单文件>生成清单:是)。 事实上,产生明显的修改EXE / DLL,以便连接必须做充分联动。

有一些解决方法,了解详情: http://chadaustin.me/2009/05/incremental-linking-and-embedded-manifests/

临时(和最简单的/最快)的解决方案是开发过程中禁用清单生成和释放阶段再次启用它。 虽然这禁用应用程序XP / Vista风格的GUI(控件看起来像“经典模式”)。



Answer 2:

因此,原来的问题解决它的自我如果我添加/INCREMENTAL到链接器命令行。 这尽管事实上,根据文档的默认行为是启用增量链接。

奇怪。



Answer 3:

真正的拍摄在黑暗中,但...

你移动XXXXX.exe从那里建到别的地方? 增量链接的整点是要改变现有的exe文件。 如果没有,这将是困难的......

另一个可能的原因是,该文件被更改,构建结束后(可能是另一种工具)......

所有的原因都列在了/增量的帮助项 :

此外,链接,如果任一下列情况时,执行完全链接:

增量状态(.ilk)文件丢失。 (LINK创建在用于后续增量链接准备一个新的.ilk文件)。

没有为.ilk文件没有写权限。 (LINK忽略.ilk文件和链接nonincrementally。)

该.exe或.dll输出文件丢失。

在.ilk的时间戳,.exe文件,或.dll改变。

一个链接选项被改变。 大多数链接选项,当改变之间架起,使一个完整的链接。

的对象(.OBJ)文件被添加或省略。

这是与/羽/ Z7选项编译的对象被改变。



Answer 4:

  1. 下载将procmon来自微软。
  2. 运行它,设置一个过滤器,让你正在寻找访问包含您的.exe名称的路径。
  3. 做一个链接。
  4. 看看它的有麻烦 - 它找到它,它在打开它记录错误。 将procmon将记录每一个文件打开,阅读,关闭等,如果它得到一个错误,它会记录它。
  5. 另外,还要确保它可以找到.ilk文件 - 我认为它需要这一点。


Answer 5:

(也可在黑暗中)一个可能的原因是,您使用的是项目范围头引用__DATE__宏。 但是,在这种情况下,你会看到一个完整的重新编译,以及(你呢?)



Answer 6:

就我而言,我昨天得到这个错误。

VS设定code generation > runtime LibraryMulti-threaded Debug DLL (/MDd)而不是Multi-threaded Debug (/MTd)

如果我重新创建新项目,这个坏设置再次发生。 我手动切换到/Mtd ,则没有错误发生。



文章来源: C++: LINK : debug\\XXXXX.exe not found or not built by the last incremental link; performing full link