C++ Compiler Problem (3.2.2); neue Syntax

Diskutiere C++ Compiler Problem (3.2.2); neue Syntax im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hallo! Ich habe ein generelles Compiler-Problem mit C++. Mein System: Mandrake Linux 9.1, Kernel 2.4.21-pre gcc-3.2.2-3mdk...

  1. Wizard

    Wizard Tripel-As

    Dabei seit:
    21.01.2003
    Beiträge:
    234
    Zustimmungen:
    0
    Hallo!
    Ich habe ein generelles Compiler-Problem mit C++.

    Mein System:
    Mandrake Linux 9.1, Kernel 2.4.21-pre
    gcc-3.2.2-3mdk
    gcc-c++-3.2.2-3mdk

    Es schienen sich mit der neuen 3er Version von gcc einige Sachen geändert zu haben.

    Beispiel:
    Ich kompiliere ein einfaches hello-world-Programm:

    Code:
    #include <iostream.h>
     
    int main()
    {
            cout << "hallo welt\n";
    }
    
    Der Compiler arbeitet zwar anstandslos, gibt aber den Hinweis aus, dass diese Systax veraltet sei.
    Nach einiger Recherche habe ich dann erfahren, dass die neue Syntax folgendermaßen aussieht:

    Code:
    #include <iostream>
     
    int main()
    {
            std::cout << "hallo welt\n";
    }
    
    Ich suche daher ein verlässliches Tutorial, dass die neuen Konventionen berücksichtigt.

    Zweitens: Alle Programme, die auf dem C++-Compiler aufbauen, melden Fehler beim kompilieren (möglicherweise wegen der neuen Syntax): Glade, Anjuta und Kylix C++ Builder (Syntaxfehler). Wie kann ich hier Libraries linken bzw. die Programme patchen, damit sie mit gcc-c++-3.2.2 funktionieren?
     
  2. #2 megamimi, 14.07.2003
    megamimi

    megamimi Nörgler vom Dienst

    Dabei seit:
    12.01.2003
    Beiträge:
    469
    Zustimmungen:
    0
    Ort:
    /home/megamimi
    hi...

    Also normalerweise heißt es ja auch:

    Code:
    #include<iostream>
    [b]using namespace std;[/b]
    
    int main(){
                 cout << "Hallo Welt\n";
                 return 0;
    }
    
    Versuch es mal so.

    cu mimi
     
  3. Andre

    Andre Foren Gott
    Moderator

    Dabei seit:
    01.04.2002
    Beiträge:
    3.876
    Zustimmungen:
    0
  4. #4 daniel-kun, 14.07.2003
    daniel-kun

    daniel-kun Jungspund

    Dabei seit:
    19.06.2003
    Beiträge:
    15
    Zustimmungen:
    0
    Ort:
    Germany/NRW
    Hallo,

    Die von dir genannten Programme sollten fein mit gcc 3.2.2 compilieren.
    Zeig doch bitte mal die (vermeintlichen) Syntaxfehler.

    cu, Daniel
     
  5. Wizard

    Wizard Tripel-As

    Dabei seit:
    21.01.2003
    Beiträge:
    234
    Zustimmungen:
    0
    Vielen Dank erstmal, die bisherigen Hinweise waren schon sehr hilfreeich.

    Zu den Fehlermeldungen:
    Kylix meldet in Library time.h:

    __BEGIN_NAMESPACE_STD
    /* Returned by `clock'. */
    typedef __clock_t clock_t;

    Letzte Zeile führt zum Fehler:

    [C++ Fehler] time.h(63): E2141 Fehler in der Deklarationssyntax

    Ich habe noch nichts editiert, lediglich Kylix C++ Builder gestartet und versucht zu kompilieren. Gleichzeitig werden noch viel mehr Fehler angezeigt, alle verweisen auf Library time.h.
     
  6. Wizard

    Wizard Tripel-As

    Dabei seit:
    21.01.2003
    Beiträge:
    234
    Zustimmungen:
    0
    Ich habe bei Borland eine Seite gefunden, die den Fehler beschreibt:

    http://bdn.borland.com/article/0,1410,29306,00.html

    Ich werde daraus aber nicht wirklich schlau. Ich habe wie beschrieben in den Projekt-Optionen beim Include-Pfade /usr/include: vorangestellt. Probeweise auch die genannten Pfade. Jetzt erhalte ich die NAchricht über einen fatalen Fehler...
     
  7. Andre

    Andre Foren Gott
    Moderator

    Dabei seit:
    01.04.2002
    Beiträge:
    3.876
    Zustimmungen:
    0
    du sollst das nur an erster stelle einfügen...nicht als prefix für die anderen?!

    es liegen eben mehrere(verschiedene) time.h im system...und hier ist es wohl wichtig das die version aus /usr/include benutzt wird und keine andere
     
  8. Wizard

    Wizard Tripel-As

    Dabei seit:
    21.01.2003
    Beiträge:
    234
    Zustimmungen:
    0
    Die Einstellung bei Projekt - Optionen - Verzeichnisse/Bedingungen sieht folgendermaßen aus:

    $(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl:/usr/include

    Wenn ich /usr/include: voranstelle, löst das nicht das Problem.
     
  9. Andre

    Andre Foren Gott
    Moderator

    Dabei seit:
    01.04.2002
    Beiträge:
    3.876
    Zustimmungen:
    0
    versuch mal so:
    $(BCB)/usr/include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl
     
  10. Wizard

    Wizard Tripel-As

    Dabei seit:
    21.01.2003
    Beiträge:
    234
    Zustimmungen:
    0
    Leider hatteich damit keinen Erfolg.

    Aber sowieso werde ich in nächster Zeit wahrscheinlich nur Konsolen-Anwendungen schreiben. Wenn ich das Problem dennoch lösen kann, melde ich mich wieder, ansonsten warte ich auf das nächste Release.
     
Thema:

C++ Compiler Problem (3.2.2); neue Syntax

Die Seite wird geladen...

C++ Compiler Problem (3.2.2); neue Syntax - Ähnliche Themen

  1. Compiler Problem: cannot find -lexpat collect2: ld returned 1 exit status

    Compiler Problem: cannot find -lexpat collect2: ld returned 1 exit status: hallo liebe leute, ich kriege in letzter zeit immer probleme beim kompillieren von Programmen aus dem Sourcecode. Und zwar taucht dann zumeist...
  2. Compiler-Problem

    Compiler-Problem: Hi, ich versuche jetzt schon ziemlich lang, aber mein Compiler spuckt immer komische Sachen aus, und ich weiss net wieso. #include <stdio.h>...
  3. Compiler Problem

    Compiler Problem: Ich habe folgenden Source Code, und kann den irgendwie net kompilieren, Compiler gibt immer Fehler aus, wo meiner Meinung nach keine sind....
  4. Problem mit Compiler bei ./configure... x includes

    Problem mit Compiler bei ./configure... x includes: Hi, also ich hab folgendes Problem... wollte ein Theme für KDE compilieren, hab also entpackt, bin mit der Konsole in den Ordner und gab den Code...
  5. Problem mit dem C Compiler

    Problem mit dem C Compiler: Da KXDocker auf Edgy nicht mehr wirklich laufen soll, wollte ich alternativ dann KSmoothDock installieren. Bei der Installation kam dann jedoch...