狀況
當您執行 Microsoft Visual C++ 2008年有更多的編譯器編譯的檔案,或建置專案時,您會收到下列錯誤訊息︰
嚴重錯誤 C1859︰標頭檔名稱未預期先行編譯標頭,只要重新執行編譯器可能會修正此問題。
此外,仍會發生這個問題甚至當您執行編譯器一次。當您啟用建立/使用先行編譯標頭編譯器選項,在執行 Windows 7 或 Windows Server 2008 的電腦上,就會發生這個問題。
注意如果您啟用/analyze編譯器選項,就可能經常遇到這個問題更多。原因
當您啟用 [建立/使用先行編譯標頭編譯器選項時,編譯器會要求,先行編譯標頭檔及相對的模組不會移動編譯之間。不過,位址空間配置隨機載入 (也稱為 ASLR) 功能隨機基底位址的處理序中的模組。因此,當編譯之間移動的模組時,就會發生錯誤。
解決方案
Hotfix 資訊
支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。
若要下載此 hotfix,從 Microsoft 開發人員網路 (MSDN) 的程式碼庫,請造訪下列 Microsoft 網站︰http://code.msdn.microsoft.com/KB976656 注意MSDN 程式碼庫顯示 hotfix 是可用的語言。如果看不到您所使用的語言,它是因為代碼庫資源頁面未提供該語言的支援。 注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰
http://support.microsoft.com/contactus/?ws=support注意您也可以下載此 hotfix 下列 Microsoft 網站︰
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=25785注意此 hotfix 套件也包含的通用修正程式"C1001︰ 內部錯誤發生在編譯器 (編譯器檔案 f:\dd\vctools\compiler\utc\src\p2\main.c,行 182) 當您使用.NET framework 3.5。
先決條件
您必須擁有 Microsoft Visual Studio 2008 Service Pack 1 安裝套用此 hotfix 之後。
重新啟動需求
如果沒有 Visual Studio 執行個體正在使用中的話,套用此 hotfix 之後不需要重新啟動電腦。
Hotfix 取代資訊
此 hotfix 不會取代任何其他 hotfix。
檔案資訊
此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 UTC 與當地時間的時差,請使用 時區 在索引標籤 日期和時間 在 [控制台] 中的項目。
檔案名稱 |
檔案版本 |
檔案大小 |
日期 |
時間 |
---|---|---|---|---|
C1.dll |
15.0.30729.4455 |
677,184 |
10-Dec-2009 |
02:31 |
C1.dll |
15.0.30729.4455 |
828,744 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,202,952 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,213,704 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,348,360 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,504,016 |
10-Dec-2009 |
02:31 |
C1xx.dll |
15.0.30729.4455 |
2,890,568 |
10-Dec-2009 |
02:31 |
因應措施
若要解決這個問題,請使用下列方法之一。
方法 1 如果啟用,請停用 [ /analyze編譯器選項。 方法 2 啟動乾淨的組建。 方法 3 重新啟動電腦。 方法 4 停用建立/使用先行編譯標頭的編譯器選項。 注意這些方法並不保證工作。即使您使用其中一個方法,您可能仍會遇到這個問題。狀態
Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
更多的資訊
如需有關位址空間配置隨機的詳細資訊,請造訪下列 Microsoft 的部落格文章︰
解決 Windows Vista 中的空間配置隨機如需先行編譯標頭錯誤的詳細資訊,請造訪下列 Microsoft 的部落格文章︰