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