2009-07-07 8 views
9

Je reçois l'erreur suivante, quelqu'un pourrait-il m'aider à résoudre ce problème.Erreur de compilateur interne VC++

C1001 erreur fatale: INTERNE COMPILER erreur (fichier compilateur 'f: \ vs70builds \ 3077 \ vc \ compilateur \ CxxFE \ sl \ P1 \ C \ pdbmgr.cpp', ligne 149) S'il vous plaît choisir le commande technique support du Visual C++ menu Aide, ou ouvrez le fichier d'aide du support technique pour plus d'informations

+2

Pourquoi est-ce que cette option est downvoted/vote? Semble une question juste pour moi, même s'il n'y a pas de bonne réponse – jalf

+1

Yeap, une question très réelle surtout si vous avez été dans cette situation à plusieurs reprises. – sharptooth

+1

@Neil: Pas si paresseux. Il est typique de violer la grammaire du langage et d'obtenir les messages d'erreur de spawn du compilateur. Ce n'est pas typique de voir un message disant que le compilateur refuse en fait de compiler un code parfaitement correct. – sharptooth

Répondre

1

C'est une chose très regrettable. De telles indications apparaissent de temps en temps sans raison apparente. Même MSDN recommande d'aller au code et de jouer avec des pragmas d'optimisation là-bas. Vous devez détecter quelle construction provoque cette indication et la réécrire d'une manière ou d'une autre. Ou vous pouvez utiliser une version plus récente de VC++.

3

Non, vous êtes foutu. Vous avez fait quelque chose qui a exposé une erreur dans le compilateur. Jouez avec les paramètres d'optimisation, #pragmas et en jouant avec votre code jusqu'à ce que cela fonctionne.

Et peut-être soumettre un rapport de bogue sur connect.microsoft.com

1

ERREUR INTERNE COMPILER (fichier fichier du compilateur, numéro de ligne) Le compilateur ne peut pas générer le code correct pour une construction, probablement en raison de la combinaison d'une expression et une option d'optimisation. Essayez de supprimer une ou plusieurs options d'optimisation et de recompiler la fonction contenant la ligne indiquée dans le message d'erreur. Vous pouvez probablement résoudre le problème en supprimant une ou plusieurs options d'optimisation. Pour déterminer quelle est l'option en cause, supprimez les options une à la fois et recompilez jusqu'à ce que le message d'erreur disparaisse. Les options les plus communément responsables sont/Og,/Oi et/Oa. Une fois que vous avez déterminé quelle option est responsable, vous pouvez la désactiver en utilisant le pragma d'optimisation autour de la fonction où l'erreur se produit et continuer à utiliser l'option pour le reste du module. La base de connaissances Microsoft contient plus d'informations sur C1001; voir http://support.microsoft.com/default.aspx?scid=kb;en-us;134650.

Questions connexes