web-dev-qa-db-fra.com

erreur fatale C1001: une erreur interne s'est produite dans le compilateur

Lors de la compilation sur une plate-forme x64, l'erreur suivante apparaît:

c:\codavs05\hpsw-sc\ovpacc\tools\codaaccesstest\coda_access.cpp(1572): fatal error C1001: An internal error has occurred in the compiler.

(compiler file 'f:\dd\vctools\compiler\utc\src\p2\sizeopt.c', line 55)
To work around this problem, try simplifying or changing the program near the locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information

------ Build started: Project: asyncexample, Configuration: Release Win32 ------

Si je modifie les paramètres dans le fichier de préprocesseur (Oui), je ne reçois aucune erreur.

À propos de mon environnement: Mise à niveau de Microsoft Visual Studio 2005 à 2010

S'il vous plaît aider.

13
venkat

J'ai rencontré cette erreur plusieurs fois dans VC++. Suivez les étapes suivantes. Ils m'ont toujours aidé avec ce problème:

  1. Jetez un coup d'œil à l'emplacement exact, signalé par une erreur du compilateur. 
  2. Recherchez tous les types ou classes externes utilisés à cet emplacement. 
  3. Modifiez l'ordre de «chemin d'accès» des fichiers trouvés à l'étape 2 et reconstruisez la solution. 
  4. J'espère que cette aide !!!!
9
hsalimi

Je reçois la même erreur avec VC2012. La configuration des propriétés du projet Optimisation sur Désactivé a résolu le problème.

7
anil

J'ai eu ce problème avec VS2015 lors de la construction locale de Windows.

Afin de le résoudre, j'ai supprimé mon dossier de construction (répertoire de sortie, comme indiqué dans Propriétés/Général) et reconstruit le projet.

Cela semble toujours aider lorsque des choses étranges se produisent pendant la construction.

5
Autex

Dans ma solution, j'ai supprimé le fichier de sortie dll du projet et j'ai reconstruit le projet.

3
Paweł Iwaneczko

J'ai eu cette erreur en utilisant la bibliothèque de boost avec VS2017. Nettoyer la solution et la reconstruire a résolu le problème.

2
Tides

Dans mon cas, l’utilisation d’une fonction statique lambda avec un argument QStringList. Si j'ai commenté les régions où la QStringList a été utilisée, le fichier compilé, sinon le compilateur a signalé l'erreur C1001. Le fait de changer la fonction lambda en non-statique a résolu le problème (évidemment, une autre option aurait pu être d’utiliser une fonction globale dans un espace de noms anonyme ou une méthode privée statique de la classe).

2
cbuchart

J'ai rencontré la même erreur et j'ai passé pas mal de temps à chercher le problème. Enfin, j'ai découvert cette fonction sur laquelle l'erreur pointait avait une boucle while infinie. Correction de cela et l'erreur est partie.

2
quitePro

J'ai également eu ce problème lors de la mise à niveau de VS2008 à VS2010.

Pour résoudre ce problème, je dois installer un correctif VS2008 (KB976656).

Peut-être existe-t-il un patch similaire pour VS2005?

1
Philippe

J'ai eu celui-ci avec le code pendant le refactoring avec un manque de soin (et avec les modèles, c'est le cas qui a fait la différence entre une erreur ICE et le temps de compilation)

Code simplifié:

void myFunction() {
    using std::is_same_v;
    for (auto i ...) {
       myOtherFunction(..., i);
    }
}

void myOtherFunction(..., size_t idx) {
    // no statement using std::is_same_v;
    if constexpr (is_same_v<T, char>) {
        ...
    }
}
1
chrisb2244

J'ai eu la même erreur, mais avec un fichier différent référencé dans le message d'erreur, sur une version VS 2015/x64/Win7. Dans mon cas, le fichier était main.cpp. Résoudre le problème pour moi était aussi simple que de tout reconstruire (et de trouver autre chose à faire pendant que plus d'un million de lignes de code étaient traitées).

Update : il s'avère que la cause principale est que mon disque dur est en panne. Après que d'autres symptômes m'ont incité à exécuter chkdsk, j'ai découvert que la plupart des secteurs défectueux remplacés se trouvaient dans les fichiers .obj, .pdb et autres fichiers générés par le compilateur.

1
hlongmore

J'ai eu cette erreur lorsque je compilais sur une cible x 64. Passer à x86 me permet de compiler le programme.

0
Robert Andrzejuk