tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von _Grubi
  • 1 Beitrag von Matthias Reitinger
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
675
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Guten morgen,

    seit gestern kämpfe ich mit diesem Compilerfehler ....

    Ich habe in insgesamt 5 verschiedenen Projekten eine neue Klasse eingefügt. Vier davon lassen sich problemlos compilieren, das fünfte nur als DEBUG-Version; beim RELEASE kommt der Fehler (auch wenn ich die neue Klasse alleine compliere) !
    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.
    der Header:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    // CSCmdMaps.h: Schnittstelle für die Klasse CCSCmdMaps
    //
    //////////////////////////////////////////////////////////////////////
     
    #pragma once
     
    #include <map>
    #include <string>
     
    using namespace std;
     
    class CCSCmdMaps
    {
    public:
        CCSCmdMaps(void);
        virtual ~CCSCmdMaps(void);
     
        map<int,string> fFillStatusMap();
        map<int,string> fFillLoginMap();
        map<int,string> fFillSDataMap();
        map<int,string> fFillFaxCmdsMap();
        map<int,string> fFillCRMCmdsMap();
        map<int,string> fFillRemoteControlMap();
     
    };

    die cpp-Datei (leicht anonymisiert)
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    
    // CSCmdMaps.cpp: Implementierung der Klasse CCSCmdMaps
    //
    //////////////////////////////////////////////////////////////////////
     
    #include "stdafx.h"
    #include "CSCmdMaps.h"
     
    #ifdef _DEBUG
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__;
    #define new DEBUG_NEW
    #endif
     
    //////////////////////////////////////////////////////////////////////
    // Konstruktion/Destruktion
    //////////////////////////////////////////////////////////////////////
    CCSCmdMaps::CCSCmdMaps(void)
    {}
     
    CCSCmdMaps::~CCSCmdMaps(void)
    {}
     
     
    // ##########################################################################################################
    // ##########   Füllen der Map für die CommandGroup Statusinformationen: ID_REQ_CG_STATUS (0x002)  ##########
    // ##########################################################################################################
    map<int,string> CCSCmdMaps::fFillStatusMap()
    {
        map<int,string> mapStatus;
     
        mapStatus[0x01] = "AAA";
        // ...
        mapStatus[0x0E] = "ZZZ";
     
        return mapStatus;
     
    } // fFillStatusMap
     
     
    // ###########################################################################################
    // ##########   Füllen der Map für die CommandGroup Login: ID_REQ_CG_LOGIN (0x003)  ##########
    // ###########################################################################################
    map<int,string> CCSCmdMaps::fFillLoginMap()
    {
        map<int,string> mapLogin;
     
        mapLogin[0x01] = "AAA";
      // ...
        mapLogin[0x015] = "ZZZ";
     
        return mapLogin;
     
    } // fFillLoginMap
     
     
    // ###########################################################################################
    // ##########   Füllen der Map für die CommandGroup Login: ID_REQ_CG_SDATA (0x005)  ##########
    // ###########################################################################################
    map<int,string> CCSCmdMaps::fFillSDataMap()
    {
        map<int,string> mapSData;
     
        mapSData[0x090] = "AAA";
        mapSData[0x091] = "ZZZ";
     
        return mapSData;
     
    } // fFillSDataMap
     
     
    // #############################################################################################
    // ##########   Füllen der Map für die CommandGroup Login: ID_CG_FAXCOMMANDS (0x00A)  ##########
    // #############################################################################################
    map<int,string> CCSCmdMaps::fFillFaxCmdsMap()
    {
        map<int,string> mapFaxCmds;
     
        mapFaxCmds[0x01] = "AAA";
      // ...
      mapFaxCmds[0x0C] = "ZZZ";
     
        return mapFaxCmds;
     
    } // fFillFaxCmdsMap
     
     
    // #############################################################################################
    // ##########   Füllen der Map für die CommandGroup Login: ID_CG_CRMCOMMANDS (0x00B)  ##########
    // #############################################################################################
    map<int,string> CCSCmdMaps::fFillCRMCmdsMap()
    {
        map<int,string> mapCRMCmds;
     
        mapCRMCmds[0x001] = "AAA";
      // ...
      mapCRMCmds[0x25c] = "ZZZ";
     
        return mapCRMCmds;
     
    } // fFillCRMCmdsMap
     
     
    // #######################################################################################################
    // ##########   Füllen der Map für die CommandGroup Login: ID_CG_REMOTECONTROLLCOMMANDS (0x0c)  ##########
    // #######################################################################################################
    map<int,string> CCSCmdMaps::fFillRemoteControlMap()
    {
        map<int,string> mapRemoteControl;
     
        mapRemoteControl[0x001] = "AAA";
      // ...
      mapRemoteControl[0x010] = "ZZZ";
     
        return mapRemoteControl;
     
    } // fFillRemoteControlMap

    Das Einzige, was mich leicht irritiert, ist dieser Teil:
    Code cpp:
    1
    2
    3
    4
    5
    
    #ifdef _DEBUG
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__;
    #define new DEBUG_NEW
    #endif
    Normalerweise werden ja hierbei im Release-Mode die drei inneren Zeilen hellgrau dargestellt, das da define nicht aktiv ist (ist es lt. Projekteinstellungen auch nicht) - was jedoch im fehlerhaften Projekt NICHT der Fall ist.

    Ich bin über Google auf diese Seite (http://support.microsoft.com/kb/2546748/en-us) gestoßen, finde allerdings die erwähnte Einstellung /MP in meinen Projekteinstellungen nicht ...

    Ich hoffe, dass irgend jemand hierzu eine zündende Idee hat!

    Danke und Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Hallo,

    so, ich habe noch ein wenig weiter geforscht.

    Der Compilerschalter /MP habe ich gefunden - er stand eindeutig auf NEIN (kann als nicht das im o. g. Link erwähnte Problem sein) ....

    Ich habe dann mal die neu Klasse mit allen Aufrufen komplett entfernt - und konnte die Releaseversion wieder erstellen.
    Das Problem tritt aber auch dann auf, sobald ich jetzt irgendeine 'leere' neue Klasse hinzufüge (also nur mit Konstruktor und Destruktor) - und eben nur in der Releaseversion .....

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    _Grubi _Grubi ist offline Mitglied Gold
    Registriert seit
    Sep 2009
    Beiträge
    216
    Ich kann dir gerade nicht sagen, ob es wirklich _DEBUG oder nur DEBUG ist. Ansonsten probiere mal #ifndef NDEBUG (den gibt es auf jedenfall)

    Ansonsten mal alle Funktionen rauswerfen, kompilieren. Nach und nach wieder die Funktionen mit aufnehmen. Irgendwann kannst du vielleicht eingrenzen, wo der Fehler liegt.
    vfl_freak bedankt sich. 

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    erstmal Danke für Deine Antwort

    Ok, NDEBUG wäre sicherlich eine Möglichkeit ... werde ich am Montag mal testen !
    Allerdings ist bei mir in den DEBUG-Versionen eindeutig "_DEBUG" gesetzt!

    Aber wie ich in meinem zweiten Post schon schrieb, habe ich diese neue Klasse mit allen Aufrufen komplett aus dem Projekt rausgeworfen und konnte dann die Releaseversion wieder erzeugen.

    Das Problem tritt aber jetzt immer wieder auf, sobald ich jetzt auch nur irgendeine beliebige neue Klasse nur mit Konstruktor und Destruktor hinzufüge - und eben nur in der Releaseversion .....

    Bin derzeit absolut ratlos

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #5
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Hallo,

    hast du das Projekt nach dem Hinzufügen der Klasse auch mal komplett bereinigt und neu erstellt? Verwendest du vorkompilierte Header? Falls ja, schalte die Funktion testweise mal ab.

    Grüße,
    Matthias
    vfl_freak bedankt sich. 
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  6. #6
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin Matthias,

    bereinigt und neu erstellt - ja!

    Ok, das mit den vorcompilierten Headern werde ich am Montag morgen mal prüfen und ggf. testen! Danke für den Hinweis

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  7. #7
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Guten Morgen .....

    tja, die vorkompilierten Header sind bei mir schon ausgeschaltet gewesen ....

    Ich poste jetzt hier mal die kompletten Befehlszeilen, so wie sie bei mir in den Eigenschaften stehen:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    // ###
    // C++
    // ###
    /I"D:\Eigene Dateien\Visual Studio 2010\Projects\Crypto561" /Zi /nologo /W3 /WX- /O2 /Ob1 /Oy- 
    /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_VC80_UPGRADE=0x0600" /D "_MBCS" /GF /Gm- /EHsc /MT 
    /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fp".\MYAPP_Release\MYAPP.pch" 
    /Fa".\MYAPP_Win32_Release\" /Fo".\MYAPP_Win32_Release\" 
    /Fd".\MYAPP_Win32_Release\" /Gd /analyze- /errorReport:none
     
    // ######
    // Linker
    // ######
    /OUT:".\MYAPP_Win32_Release\#MYAPP.exe" /INCREMENTAL:NO /NOLOGO 
    /LIBPATH:"D:\Eigene Dateien\Visual Studio 2010\Projects\Crypto561\Win32\Output\Release" 
    "ws2_32.lib" "cryptlib.lib" "nafxcw.lib" "libcmt.lib" /NODEFAULTLIB:"Libc.lib" 
    /NODEFAULTLIB:"libcmt.lib" /NODEFAULTLIB:"msvcrt.lib" /NODEFAULTLIB:"libcd.lib" 
    /NODEFAULTLIB:"msvcrtd.lib" /MANIFEST 
    /ManifestFile:".\MYAPP_Win32_Release\#MYAPP.exe.intermediate.manifest" 
    /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" 
    /PDB:"D:\Eigene Dateien\Visual Studio 2010\Projects\MYAPP\MYAPP_Win32_Release\#MYAPP.pdb" 
    /SUBSYSTEM:WINDOWS /PGD:"D:\Eigene Dateien\Visual Studio 2010\Projects\MYAPP\MYAPP_Win32_Release\#MYAPP.pgd" 
    /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:NONE
     
    // ############
    // Manifesttool
    // ############
    /nologo /verbose ".\MYAPP_Win32_Release\#MYAPP.exe.embed.manifest.res" 
     
    // ##########
    // Ressourcen
    // ##########
    /D "_VC80_UPGRADE=0x0600" /l 0x0407 /nologo /fo".\MYAPP_Win32_Release\%(Filename).res"
     
    // ######################
    // XML-Dokument-Generator
    // ######################
    /nologo /Fo".\MYAPP_Win32_Release\#MYAPP.xml"
     
    // #######################
    // Information durchsuchen
    // #######################
    /nologo /o".\MYAPP_Win32_Release\MYAPP.bsc" 
     
    // ----------------------------------------------------------------------------
    // MYAPP dient hier der Anonymisierung
    // die '#' vor dem Dateinamen ist so gewollt    
    // ----------------------------------------------------------------------------

    Ich hoffe auf weitere Ideen .....

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  8. #8
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Welche Version von VS2010 hast du denn?

    VS10 Service Pack installiert?

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  9. #9
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin deepthroat,

    lt. Info:
    VS: Version 4.0.40219 SP1Rel
    .NET: Version 4.0.30319 SP1Rel

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  10. #10
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    OK, sieht soweit gut aus.

    Folge mal diesen Anweisungen:
    go to "Tools" menu, and then "Options...". Next, expand the "Projects and Solutions" tree and select "Build and Run". On the page that comes up on the right, please select "Diagnostic" under the second to last option, "MSBuild project build output verbosity". Then click Ok to the dialog, and build the project using the "Rebuild Solution" from the "Build" menu. Once the project has completed building, please copy all output from the Output window (you can open the output window by going to the "View" menu, and select the "Output" view) and paste into a text document
    Und häng die .txt dann hier an.

    Gruß
    vfl_freak bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  11. #11
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Sorry - hat etwas gedauert, da wir hier die deutsche Version am Start haben

    ok, here we go ...

    Gruß
    Klaus

    EDIT: die neue Klasse heißt derzeit zum Testen "AATest.cpp"
    Angehängte Dateien Angehängte Dateien
    Geändert von vfl_freak (16.01.12 um 10:14 Uhr)
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  12. #12
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    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 :
    Code cpp:
    1
    2
    3
    
    <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
    Code cpp:
    1
    
    <ClCompile Include="meineKlasse.cpp" />
    lies sich das Projekt dann wieder problemlos compilieren !

    Danke trotzdem für die Unterstützung

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

Ähnliche Themen

  1. Interner Serverfehler statt PHP-Error
    Von para_noid im Forum Hosting & Webserver
    Antworten: 9
    Letzter Beitrag: 12.12.11, 21:01
  2. Compilerfehler: error C2440
    Von skynetcom im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 14.05.11, 23:15
  3. Visual Studio 2010 error C2061 'identifier'
    Von afg_style im Forum VisualStudio & MFC
    Antworten: 7
    Letzter Beitrag: 04.03.11, 18:27
  4. Antworten: 0
    Letzter Beitrag: 05.01.07, 18:22
  5. Compilerfehler: 'error C2558' und 'error C2679'
    Von jokey2 im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 22.05.06, 16:07