[VS 2010] error D8030: INTERNER COMPILERFEHLER
-
Hallo zusammen,
seit einigen Tagen kämpfe ich mit diesem Compilerfehler ....
Ich habe in insgesamt 5 verschiedenen Projekten (die vor ca. 5 Monaten von VS6 auf VS2010 portiert wurden) eine neue Klasse eingefügt. Vier davon lassen sich problemlos compilieren, das fünfte nur als DEBUG-Version; beim RELEASE kommt der Fehler!
1>cl : Befehlszeile error D8030: INTERNER COMPILERFEHLER in "" 1> Klicken Sie im Menü "Hilfe" von Visual C++ auf "Technischer Support", 1> oder öffnen Sie die Hilfe zum technischen Support, um weitere Informationen zu erhalten.
Ich bin sogar soweit, dass der Fehler beim einer frisch eingefügten, leeren Klasse (nur Konstruktor und Destruktor) auftritt (egal mit welchen Klassennamen). Wenn ich die Klasse wieder aus dem Projekt entferne, dann läßt sich die Release-Version wieder erzeugen .....
Nach einer Websuche kann ich auch ausschliessen:
- ich verwende keine vorcompilierten Header
- der Schalter /MP ist NICHT gesetztIch arbeite mit einem XP-Rechner (SP3) und folgenden Versionen:
VS: Version 4.0.40219 SP1Rel
.NET: Version 4.0.30319 SP1RelBin mit meinem Latein leider so langsam am Ende ...
Ich hoffe, das irgendwer eine zündende Idee hat
Danke und Gruß
Klaus
-
Zeige Code.
Ansonsten wende Dich vertrauensvoll and den MS-Support oder an connect.microsoft.com. Auf solche interne Compilerfehler sind die ganz scharf...
-
Moin,
Martin Richter schrieb:
Ansonsten wende Dich vertrauensvoll and den MS-Support oder an connect.microsoft.com. Auf solche interne Compilerfehler sind die ganz scharf...
Allerletztes Mittel .... leider haben wir hier keinen Wartungsvertrag - das soll dann ohne 299€ + USt. kosten !!
Source der neuen Klasse:
#include "stdafx.h" #include "CRMCmdMaps.h" CCRMCmdMaps::CCRMCmdMaps(void) {} CCRMCmdMaps::~CCRMCmdMaps(void) {}
und der zugehörige Header:
#pragma once class CCRMCmdMaps { public: CCRMCmdMaps(void); virtual ~CCRMCmdMaps(void); };
Wurde beides so generiert! Aufrufen tue ich diese Klasse nirgendwo. Alleine diese leere Anlage erzeugt den Fehler - und eben nur in einem von fünf Projekten und eben auch nur im Releasemodus! Debug klappt ....
Wir sind uns hier eigentlich einig, dass es vermutlich weniger am Code liegen wird ...
Gruß
Klaus
-
1. connect.microsoft.comist kostenlos.
2. Wenn Du ein MSDN Abo hast, hast Du im Minimum 2 Supportanfragen freiZu Deinem Code:
Den Code führt bei mir zu kenen Problemen.
Kannst Du ein Mini-Testprjekt zusammenstellen, dass den Fehler reproduziert?Welche Compiler Optionen verwendest Du?
Schalte mal zum Test die Optimierung aus...
-
Hallo Martin,
Danke für die Antwort
Der Link werde ich mir gleich mal anschauen!
MSDN-Abos haben wir hier derzeit leider auch (noch...) nicht> Kannst Du ein Mini-Testprjekt zusammenstellen, dass den Fehler reproduziert?
Nein, leider eben nicht, das das Problem nur in diesem einen Fall auftritt - siehe mein erster Post> Welche Compiler Optionen verwendest Du?
VS: Version 4.0.40219 SP1Rel - das dürfte dann wohl "cl.exe" sein, oder ?> Schalte mal zum Test die Optimierung aus...
Ok, schaue ich gleich auch mal, kann so aus dem Stand nicht sagen, ob die eingeschaltet ist!Gruß
Klaus
-
Hallo Martin,
Schalte mal zum Test die Optimierung aus
so, die Deaktivierung in "C/C++ / Optimierung" (/0d) das hat nix gebracht ...
In "Konfigurationseigenschaften/Allgemein" stand der Schalter "Optimierung des gesamten Programms" schon auf "Keine komplette Programmoptimierung"!Es ist wohl auch so, das sich diese neue Klasse (nur in diesem einen Projekt und nur in Release) auch nicht alleine compilieren lässt!!
Wenn ich sie dann in einer anderen Klasse include und dort zumindest ein Objekt erzeuge, kann ich wiederum diese andere Klasse problemlos compilieren.weitere Hinweise:
ich verwende überall MFC statisch, ATL gar nicht sowie Multithreaded-Laufzeitbibliothek (/MT)Gruß
Klaus
-
So, nach längerem Suchen könnte ich das Problem lösen
Das Problem lag in der Projektdatei .vcxproj begründet.
Dort lagen für alle (alten) Sourcen Einträge in der folgenden Form vor, die aller Voraussicht nach durch die Konvertierung von VS6 nach VS2010 zustande gekommen sind :<ClCompile Include="meineKlasse.cpp"> <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> /D /D </AdditionalOptions> </ClCompile>
Für die neue, leere Klasse gab es diesem Eintrag nicht, was den Compiler wohl aus dem Takt gebracht hat.
Nach der Korrektur dieser Zeilen<ClCompile Include="meineKlasse.cpp" />
lies sich das Projekt dann wieder problemlos compilieren !
Danke trotzdem für die Unterstützung
Gruß
Klaus