PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c++config.h namespace error



musketaquid
15-08-2007, 18:25
Hallo!

Ich versuche ein Beispiel aus einem C++ Lehrbuch zu compilieren. Aber ich bekomme immer wieder diese Fehlermeldung:

clib > g++ -Wall -o cpplibTest cpplibTest.cpp cpplib.cpp
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/i486-linux-gnu/bits/c++config.h:43: error: expected unqualified-id before 'namespace'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/i486-linux-gnu/bits/c++config.h:47: error: '__gnu_debug_def' is not a namespace-name
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/i486-linux-gnu/bits/c++config.h:47: error: expected namespace-name before ';' token
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/i486-linux-gnu/bits/c++config.h:43: error: expected unqualified-id before 'namespace'
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/i486-linux-gnu/bits/c++config.h:47: error: '__gnu_debug_def' is not a namespace-name
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/i486-linux-gnu/bits/c++config.h:47: error: expected namespace-name before ';' token

Ich hab mir c++config.h schon angeschaut, werde aber nicht schlau, was da schief läuft. Ich steh ja auch noch so ziemlich am Anfang was C++ angeht ;)
Hatt jemand einen Rat?

peschmae
15-08-2007, 19:33
Also ich hätte jetzt mal einfach ein kritisches Auge auf den Code geworfen den du zu kompilieren versuchst. Kannst du den mal posten?

Dann könnte man z.B. gucken ob der sich auf nem anderen Computer korrekt kompilieren lässt.

Dito für den entsprechenden Abschnitt der c++config.h; ich habe hier gerade keinen gcc 4.1.2 (sondern einen 4.2 - wer weiss ob die Dateien gleich sind...).

MfG Peschmä

musketaquid
15-08-2007, 20:11
Man bin ich ein Trottel! :o

Hab ein Semikolon vergessen und zwar in der eigenen header datei clib.h.
Die sieht so aus:

struct Stash {
int size; // Size of each space
int quantity; // Number of storage spaces
int next; // Next empty space
unsigned char* storage;

void initialize(int size);
void cleanup();
int add(const void* element);
void* fetch(int index);
int count();
void inflate(int increase);
}; // <- Genau das Semikoln war daran schuld

Aber wie kommt denn der Compiler deswegen auf so ne komische Fehlermeldung?

peschmae
15-08-2007, 20:22
Hab ein Semikolon vergessen und zwar in der eigenen header datei clib.h.


Ein Klassiker ;)



Aber wie kommt denn der Compiler deswegen auf so ne komische Fehlermeldung?

Naja, im Normalfall sind die Meldungen etwas durchsichtiger (ausser bei Templates). Das gehört aber irgendwie auch etwas zum lernen von C/C++, wobei es meistens aus der Reihenfolge des Codes schon eine einigermassen einleuchtende Erklärung gibt für so Sachen ;)

MfG Peschmä