2016-09-18 1 views
0

Je suis en train de construire un projet (SUBSYSTEM: WINDOWS) et mes principaux regards comme ça:Visual Studio 2015 erreur fatale C1001

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

Je reçois l'erreur suivante dans VisualStudio communautaire 2015 v 14.0.25431.01 lors de la construction. la version:

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 

Il y a quelques semaines, j'ai pu construire une version de projet avec les mêmes paramètres du compilateur et le même code que j'utilise maintenant parfaitement. J'ai essayé de supprimer les optimisations comme recommandé dans le MSDN qui ne fonctionnait pas.

Mais je l'ai remarqué quelque chose d'étrange:

Lorsque je supprime l'un des 3 fichiers (.exe .iobj .ipdb) dans le dossier de sortie et reconstruire la solution, cela fonctionne très bien (nouvelles versions de les 3 fichiers sont en cours de création). Lorsque je modifie un paramètre dans le projet ou lorsque j'ajoute une seule ligne de code et tente de reconstruire, la même erreur se produit. Si je supprime à nouveau l'un de ces 3 fichiers, je peux construire une fois de plus.

Je pense que ce comportement pourrait être causé par un réglage du compilateur que je ne connais pas mais je ne suis pas sûr car je ne suis pas un expert VisualStudio.

+0

Le texte allemand indique uniquement une erreur de compilation interne et contactez le support. –

Répondre

0

O.k. J'ai résolu le problème en créant un nouveau projet et en y ajoutant tous les fichiers .cpp & .h de l'ancien projet.

Je pense toujours qu'il y avait un problème avec les paramètres du projet que je définis par défaut en créant un nouveau projet.

0

Dans Visual Studio 2017, vous devez basculer le Projet-> Propriétés-> C/C++ -> Optimisation-> Optimisation complète du programme sur Non au lieu de Oui.

+0

Peut-être dans votre cas spécifique. Les erreurs internes du compilateur dépendent généralement du code que le compilateur compile. – drescherjm

0

Cela m'est arrivé, et je l'ai corrigé en allant dans mon dossier Release et en supprimant tous les fichiers * .ipdb. J'ai remarqué sur le projet qui a fait lien avec succès que Visual Studio dit parfois:

Toutes les fonctions ont été compilées 5226 parce qu'aucun utilisable IPDB/IOBJ de compilation précédente a été trouvé.

..et puis quand je vérifié les dates sur les fichiers * .ipdb pour le projet qui ne parvenait pas à créer un lien, je remarquai la date du fichier était encore hier soir de . Une fois que j'ai supprimé tous les fichiers * .ipdb dans le dossier Release, il a forcé Visual Studio 2015 à les recréer lors de la prochaine génération, puis mon projet a été construit avec succès!