2009-10-12 229 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,然後沒有發生錯誤。