2016-09-18 224 views
0

我想建立一個項目(子系統:WINDOWS)和我的主看起來像這樣:的Visual Studio 2015年致命錯誤C1001

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) {/*Code here*/} 

我獲得以下的VisualStudio中社區2015年v錯誤14.0.25431.01建設時。發行版:

1>e:\github\g19systemmonitor\g19tastatur applet\main.cpp : fatal error C1001: Interner Compilerfehler. 
1> (Compilerdatei "f:\dd\vctools\compiler\utc\src\p2\main.c", Zeile 255) 
1> Vereinfachen oder ändern Sie das Programm im Umfeld der oben aufgeführten Positionen. Wählen 
1> Sie im Menü "Hilfe" von Visual C++ den Befehl "Technischer Support", 
1> oder öffnen Sie die Hilfedatei des technischen Supports, um weitere Informationen zu erhalten. 
1> link!InvokeCompilerPass()+0x24399 
1> link!InvokeCompilerPass()+0x24399 
1> link!InvokeCompilerPass()+0x1dda7 
1> link!InvokeCompilerPass()+0x1dc8b 
1> link!InvokeCompilerPass()+0x298f7 
1> link!InvokeCompilerPass()+0x214ba 
1> link!DllGetC2Telemetry()+0xe39f7 
1> 
1>e:\github\g19systemmonitor\g19tastatur applet\main.cpp : fatal error C1001: Interner Compilerfehler. 
1> (Compilerdatei "f:\dd\vctools\compiler\utc\src\p2\main.c", Zeile 255) 
1> Vereinfachen oder ändern Sie das Programm im Umfeld der oben aufgeführten Positionen. Wählen 
1> Sie im Menü "Hilfe" von Visual C++ den Befehl "Technischer Support", 
1> oder öffnen Sie die Hilfedatei des technischen Supports, um weitere Informationen zu erhalten. 
1> link!InvokeCompilerPass()+0x24399 
1> link!InvokeCompilerPass()+0x1dda7 
1> link!InvokeCompilerPass()+0x1dc8b 
1> link!InvokeCompilerPass()+0x298f7 
1> link!InvokeCompilerPass()+0x214ba 
1> link!DllGetC2Telemetry()+0xe39f7 
1> 
1> 
1>LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage 
1> 
1> Version 14.00.24215.1 
1> 
1> ExceptionCode   = C0000005 
1> ExceptionFlags   = 00000000 
1> ExceptionAddress   = 502E892F (4FF40000) "D:\Programme\Visual Studio 2015\VC\bin\c2.dll" 
1> NumberParameters   = 00000002 
1> ExceptionInformation[ 0] = 00000000 
1> ExceptionInformation[ 1] = 00000036 
1> 
1> CONTEXT: 
1> Eax = 00000000 Esp = 012FE5C0 
1> Ebx = 00000000 Ebp = 012FE5D4 
1> Ecx = 05650210 Esi = 00000024 
1> Edx = 00000000 Edi = 05650210 
1> Eip = 502E892F EFlags = 00010246 
1> SegCs = 00000023 SegDs = 0000002B 
1> SegSs = 0000002B SegEs = 0000002B 
1> SegFs = 00000053 SegGs = 0000002B 
1> Dr0 = 00000000 Dr3 = 00000000 
1> Dr1 = 00000000 Dr6 = 00000000 
1> Dr2 = 00000000 Dr7 = 00000000 

幾個星期前,我是能夠建立該項目的發行版使用相同的編譯器設置和相同的代碼,因爲我現在用完美。 我已經嘗試刪除MSDN中推薦的優化,但無法正常工作。

但我已經發現了一些奇怪:

當我刪除任何3個文件的文件(.exe .iobj .ipdb)在發行文件夾,並重新生成解決方案,它工作得很好(新版本3個文件正在創建)。當我更改項目中的任何設置或僅添加一行代碼並嘗試重建時,會發生相同的錯誤。如果我再次刪除這3個文件中的一個,我可以再次構建。

我認爲這種行爲可以通過一些編譯器設置,我不知道引起的,但我不知道,因爲我不是一個專家的VisualStudio。

+0

德語文本只說內部編譯器錯誤並聯系支持。 –

回答

0

O.k.我通過創建一個新項目並將舊項目中的所有.cpp & .h文件添加到該項目中來解決了該問題。

我仍然認爲有與我通過創建一個新的項目設置爲默認的項目設置有問題。

0

在Visual Studio 2017年,您需要將項目 - >屬性 - > C/C++開關 - > Optimization->所有程序優化爲否而不是是。

+0

也許在你的具體情況。內部編譯器錯誤通常依賴於編譯器正在編譯的代碼。 – drescherjm

0

這發生在我身上,我通過去我的發佈文件夾和刪除所有* .ipdb文件來修復它。我注意到在項目鏈接成功的是Visual Studio中有時會說:

所有5226的功能進行了彙編,因爲從以前 彙編沒有可用IPDB/IOBJ被發現。

..和然後當我檢查的日期上項目的* .ipdb文件是失敗聯繫起來,我注意到該文件日期是仍然昨天晚上。一旦我刪除了發佈文件夾中的所有* .ipdb文件,它就迫使Visual Studio 2015在下一個版本中重新創建它們,然後我的項目成功構建!