Umgebung
Betriebssystem: Windows auf ARM
Compiler: MSVC 19.44 (Visual Studio 2022)
Host/Ziel: HostArm64 → arm64
Sprachstandard: C++20 />Build-Eigenschaften
Große C++-Codebasis
Kompilieren mehrerer .cpp-Dateien in einem einzigen cl.exe-Aufruf
Starke Verwendung von Drittanbieter-Headern (z. B. Qt, Boost, TBB)
/bigobj aktiviert
Als Fehler behandelte Warnungen (/WX)
Fehlerdetails
Code: Select all
The compiler crashes with repeated INTERNAL COMPILER ERROR messages and eventually fails with:
cl : command line error D8040: error creating or communicating with child process
Code: Select all
CL!strcpy()
CL!DllGetObjHandler()
CL!translate_cpfe_args()
CL!get_supports_arm32()
Beobachtungen
Die gleichen Quelldateien werden erfolgreich auf x64 kompiliert
Keine spezifische .cpp-Datei meldet einen Syntax- oder Semantikfehler
Eine Reduzierung der Optimierungsstufe vermeidet den Absturz nicht
Der Fehler tritt nur für dieses bestimmte Ziel auf, wenn es als erstellt wird Gruppe
Weist auf einen möglichen Compiler-Fehler im Zusammenhang mit ARM64EC + PCH + Multi-TU-Aufruf hin
Frage
Ist dies ein bekanntes MSVC ARM64EC-Compilerproblem?
Gibt es empfohlene Problemumgehungen, wie zum Beispiel:
Deaktivieren von PCH für ARM64EC
Kompilieren eines Übersetzungseinheit pro cl.exe-Aufruf
Wechseln der MSVC-Toolset-Versionen
Verwenden von Hostx64 anstelle von HostArm64
Vermeiden von /MP oder /bigobj für ARM64EC-Builds (bereits versucht)
Jede Anleitung von anderen, die auf ähnliche ARM64EC-ICEs gestoßen sind, wäre dankbar.
Mobile version