Hallo Welt Problem (C++)



  • Hallo,

    ich habe vor kurzem begonnen ein wenig C++ zu lernen. Leider scheitere ich schon zu beginn. Ich benutze das Programm Visual C++ 2005 Express Edition und verwende folgenden Quelltext:

    #include <iostream>
    
    main()
    {
        std::cout << "Hello World!" << std::endl;
    }
    

    Dabei bekomme ich immer folgende Fehlermeldung:

    1>------ Erstellen gestartet: Projekt: Hallo Welt 2, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>Hallo Welt 2.cpp
    1>c:\programme\microsoft visual studio 8\vc\include\iostream(1) : fatal error C1014: Zu viele Headerdateien: Tiefe = 1024
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\***\Desktop\HelloWorld\Hallo Welt 2\Hallo Welt 2\Debug\BuildLog.htm" gespeichert.
    1>Hallo Welt 2 - 1 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    

    Ich habe bei google.de nichts gefunden und hoffe das ihr mir weiterhelfen könnt.



  • Es muß int main und nicht nur main heißen.



  • Artchi schrieb:

    Es muß int main und nicht nur main heißen.

    Der Fehler besteht weiterhin, ich hatte auch schon int main geschrieben - aber der Fehler ist noch immer.

    Was bedeutet denn "zu viele Headerdateien: Tiefe = 1024"?



  • Das klingt so als würde der iostream header sich selbst rekursiv includen, also als ob irgend was mit deiner installation falsch ist.



  • Hast du mal ganz oben in der Datei #include "stdafx.h" stehen?

    Das brauch der MS Compiler afaik. Warum weiß ich aber nicht.



  • die stdafx.h ist nicht zwingend notwendig. hab mit stdafx.h sogar unter c++ probleme mit dem compiler (VS2005Prof.) gehabt



  • Wenn die stdafx.h fehlt, dann gibt der Compiler aus, dass der (angegebene) vorkompilierte Header in das Modul nicht inkludiert worden ist.

    Außerdem ist stdafx.h nur ein Header mit dem Namen stdafx.h mehr nicht.

    Visual C++ benennt den vorkompilierten Header standardmäßig stdafx.h und der C++ Compiler verlangt von einem vorkompilierten Header, dass dieser in alle Module eingebunden wird.
    Man kann übrigens einstellen, dass ein "anonymer" vorkompilierter Header erzeugt wird, dann braucht man keinen gemeinsamen Header wie stdafx.h.



  • Konrad schrieb:

    Hast du mal ganz oben in der Datei #include "stdafx.h" stehen?

    Das brauch der MS Compiler afaik. Warum weiß ich aber nicht.

    "Müssen" ist nicht ganz richtig. Wenn man in den Projekteinstellungen keine PCH einstellt, ist auch keine stdafx.h nötig. Und wenn es eingestellt ist und diese trotzdem fehlen, ist der MSVC mittlerweile so schlau, und sagt einem das.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • http://msdn2.microsoft.com/en-us/library/ee6t6b6z(VS.80).aspx

    The nesting of #include directives is too deep. Nested directives can include open files. The source file containing the directive counts as one file.



  • ness schrieb:

    Das klingt so als würde der iostream header sich selbst rekursiv includen, also als ob irgend was mit deiner installation falsch ist.

    ,

    Ich gehe davon aus, dass deine Begründung die richtige wahr. Jedenfalls funktioniert es jetzt reibungslos nach Neuinstallation.

    Dennoch vielen Dank an alle.


Anmelden zum Antworten