2009-10-12 228 views

回答

5

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

奇怪。

+0

这是为我做的。大帮忙! – 2010-09-24 18:08:47

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选项的对象已更改。

+0

没有..链接后没有任何东西触及exe。 – shoosh 2009-10-13 12:16:11

+0

病毒扫描程序,搜索索引器,备份软件等情况如何?是什么东西接触你系统上的所有新文件? – 2009-10-13 20:40:32

1

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

+0

从来没有一个完整的重新编译,我没有引用__DATE__任何地方 – shoosh 2009-10-13 12:16:50

3
  1. 从微软下载procmon
  2. 运行它,设置一个过滤器,以便您正在查找包含您的.exe名称的路径。
  3. 做一个链接。
  4. 看看它有什么麻烦 - 它是否找到它,是否在打开它时记录错误。 Procmon会记录每一个文件打开,读取,关闭等。如果出现错误,它会记录下来。
  5. 此外,请确保它可以找到.ilk文件 - 我认为它也需要。
+0

这里是日志:http://www.shiny.co.il/shooshx/k/Kawaiiexe.PML我真的不能看到任何错误。你可以吗? – shoosh 2009-10-13 16:24:18

+0

发布文本文件将有助于那些没有安装procmon的用户。 – 2009-10-13 16:30:52

+0

CVS是最好的:http://www.shiny.co.il/shooshx/k/Kawaiiexe.CSV – shoosh 2009-10-13 17:13:09

13

老问题,但只是为了防止某人仍然是个问题(而且是......)。

增量链接与生成清单文件不兼容(Proj opts> Linker> Manifest File> Generate Manifest:Yes)。事实上,生成清单会修改exe/dll,因此链接器必须完全链接。

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

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

0

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

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

如果我重新创建新项目,这个不好的设置会再次发生。我手动切换到/Mtd,然后没有发生错误。