使用 Visual Studio 2008 SP1,
这一行:
LINK : debug\XXXXX.exe not found or not built by the last incremental link; performing full link
每次编译项目时都会出现,无论我做了多么小的更改。
这可能是什么原因?
使用 Visual Studio 2008 SP1,
这一行:
LINK : debug\XXXXX.exe not found or not built by the last incremental link; performing full link
每次编译项目时都会出现,无论我做了多么小的更改。
这可能是什么原因?
老问题,但以防万一,这仍然是一个问题(而且确实是..)。
增量链接与生成清单文件不兼容(Proj opts > Linker > Manifest File > Generate Manifest:是)。实际上,生成清单会修改 exe/dll,因此链接器必须进行完全链接。
有一些解决方法,有关更多详细信息: http ://chadaustin.me/2009/05/incremental-linking-and-embedded-manifests/
临时(也是最简单/最快)的解决方案是在开发期间禁用清单生成并在发布阶段再次启用它。虽然这会禁用应用程序的 XP/Vista 风格的 gui(控件看起来像“经典模式”)。
所以事实证明,如果我添加/INCREMENTAL
到链接器命令行,问题就会自行解决。尽管事实上根据文档的默认行为是启用增量链接。
奇怪的。
真的是在黑暗中拍摄,但是,...
您是否将 XXXXX.exe 从其构建位置移动到其他位置?增量链接的重点是更改现有的 exe。如果没有,那就很难了...
另一个可能的原因是文件在构建后被更改(可能是由另一个工具)......
所有原因都列在/INCREMENTAL 的帮助项中:
此外,如果出现以下任何一种情况,LINK 会执行完整链接:
增量状态 (.ilk) 文件丢失。(LINK 创建一个新的 .ilk 文件,为后续的增量链接做准备。)
.ilk 文件没有写入权限。(LINK 忽略 .ilk 文件并以非增量方式链接。)
.exe 或 .dll 输出文件丢失。
.ilk、.exe 或 .dll 的时间戳已更改。
更改了 LINK 选项。大多数 LINK 选项在构建之间更改时会导致完整链接。
添加或省略对象 (.obj) 文件。
使用 /Yu /Z7 选项编译的对象已更改。
(也在黑暗中)一个可能的原因是您使用引用__DATE__
宏的项目范围的标题。但在这种情况下,您也会看到完整的重新编译(是吗?)
就我而言,我昨天遇到了这个错误。
VS 设置code generation > runtime Library
为Multi-threaded Debug DLL (/MDd)
而不是Multi-threaded Debug (/MTd)
.
如果我重新创建新项目,这个错误的设置会再次发生。我手动切换到/Mtd
,然后没有错误发生。