19 Stimmen

fataler Fehler C1001: Im Compiler ist ein interner Fehler aufgetreten

Beim Kompilieren auf der x64-Plattform erhalte ich folgenden Fehler:

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 ------

Wenn ich die Einstellungen für die Präprozessor-Datei ändere (Ja), erhalte ich keinen Fehler.

Über meine Umgebung: Aufrüstung von Microsoft Visual Studio 2005 auf 2010

Bitte um Hilfe.

2voto

cbuchart Punkte 9696

In meinem Fall war die Verwendung einer statischen Lambda-Funktion mit einer QStringList Argument. Wenn ich die Regionen kommentiert habe, in denen die QStringList verwendet wurde, wurde die Datei kompiliert, andernfalls meldete der Compiler den Fehler C1001. Durch Ändern der Lambda-Funktion in eine nichtstatische Funktion wurde das Problem gelöst (andere Möglichkeiten wären natürlich die Verwendung einer globalen Funktion in einem anonymen Namensraum oder einer statischen privaten Methode der Klasse gewesen).

2voto

Tides Punkte 101

Ich habe diesen Fehler mit Boost-Bibliothek mit VS2017. Reinigen Sie die Lösung und den Wiederaufbau es, löste das Problem.

1voto

Philippe Punkte 11

Ich hatte dieses Problem auch während des Upgrades von VS2008 auf VS2010.

Um dies zu beheben, muss ich einen VS2008-Patch (KB976656) installieren.

Vielleicht gibt es einen ähnlichen Patch für VS2005?

1voto

hlongmore Punkte 1317

Ich habe den gleichen Fehler, aber mit einer anderen Datei in der Fehlermeldung referenziert, auf einem VS 2015 / x64 / Win7 Build. In meinem Fall war die Datei main.cpp. Beheben Sie es für mich war so einfach wie ein Rebuild alle tun (und finden etwas anderes zu tun, während die Million plus Zeilen Code verarbeitet wurde).

更新情報 Wie sich herausstellte, ist die Hauptursache, dass meine Festplatte defekt ist. Nachdem andere Symptome mich dazu veranlassten, chkdsk auszuführen, entdeckte ich, dass die meisten der fehlerhaften Sektoren, die ersetzt wurden, in .obj-, .pdb- und anderen vom Compiler erzeugten Dateien waren.

1voto

chrisb2244 Punkte 2881

Ich habe diese mit Code während Refactoring mit einem Mangel an Sorgfalt (und mit Vorlagen, es Fall, dass das war, was eine ICE statt einer normalen Kompilierzeit Fehler)

Vereinfachter Code:

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>) {
        ...
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X