C++ Compiler Problem (3.2.2); neue Syntax

Wizard

Wizard

Tripel-As
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?
 
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
 
Hallo,

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

cu, Daniel
 
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.
 
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...
 
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
 
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.
 
versuch mal so:
$(BCB)/usr/include:$(BCB)/include/stlport:$(BCB)/include:$(BCB)/include/vcl
 
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.
 

Ähnliche Themen

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

Prozesskommunikation mit PIPES - wie funktioniert das?

Problem mit Texteingabe

C HTTP request

deprecated conversion from string constant to ‘char*’

Zurück
Oben