Forum: Compiler & IDEs Fehler beim einbinden von String.h


von Thomas N. (thomas8443)


Lesenswert?

Hallo Leute,

Bin in Sachen GCC noch ein ziemlicher Anfänger und brauche bitte eure 
Hilfe.

Habe in meinem Programm vor mit Strings zu arbeiten und logischerweise 
benötige ich dafür String.h. Doch wenn ich diese Include-Datei einbinde 
erhalte ich folgenden Fehler:

c:/programme/atmel/avr tools/lib/gcc/../../avr/include/String.h:130: 
error: expected ';', ',' or ')' before '!' token

habe probiert diese datei über eine externe header-datei einzufügen oder 
direkt in der c-datei -> alles ohne erfolg!
fehler tritt auch noch auf, wenn ich alle String - Funktionen im 
Programm lösche! Datei selbst ist aber nicht fehlerhaft, das habe ich 
überprüft!

Habt ihr eine Idee was ich gegen diesen fehler machen kann?
Danke für eure Hilfe!!!!

lg tommy

von 1.8T-Passat (Gast)


Lesenswert?

Poste bitte Deinen Quelltext. Die string.h lässt sich normalerweise 
problemlos mit dem Befehl "#include <string.h>" einbinden.

von Peter D. (peda)


Lesenswert?

Die h-Files immer als erstes einbinden.

Dann führen eigene Syntaxfehler nicht zu Fehlermeldungen in den h-Files.


Peter

von Manni (Gast)


Lesenswert?

>Dann führen eigene Syntaxfehler nicht zu Fehlermeldungen in den h-Files.

Schon, aber erst in Zeile 130?


Der Quellcode und auch die string.h würden mich interessieren.

von Klaus W. (mfgkw)


Lesenswert?

oder String.h statt string.h?

von Oliver (Gast)


Lesenswert?

Zeile 130 in string.h lautet:
1
extern size_t strlcpy(char *, const char *, size_t);

Weit und breit kein "!". In der ganzen Datei gibt es sowieso nur ein 
"!", und das steckt in einem Kommentar.

Irgendwie ist deine String.h kaputt :-)
Installier die mal neu (oder gleich das ganze WinAVR-Paket).
Oliver

von Compilerfehler (Gast)


Lesenswert?

... ja, deshalb wäre es auch mal schön, wenn man den ganzen Quelltext 
sehen dürfte, in dem die string.h eingebunden ist, denn dort ist mit 
Sicherheit der Fehler zu finden!

von Oliver (Gast)


Lesenswert?

Ne, der Fehler steckt schon in Zeile 130 der string.h.

Da ist die Fehlermeldung eindeutig. Und ausser mit sowas wie :
1
#define strlcpy irgendeinBlödsinn!

o.ä. vor dem include dürfte man die kaum hinbekommen. Alle anderen 
Ausdrücke, wie size_t oder char, kommen schon vorher in der Datei vor.

>Datei selbst ist aber nicht fehlerhaft, das habe ich
>überprüft!

Ich vermute trotzdem, daß da mal jemand beim anschauen der string.h im 
Editor aus versehen Zeichen eingefügt hat.

Aber den ganze Code hier mal anzuhängen, schadet nie.

Oliver

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Meine Glaskugel sagt, dass jemand verbotenerweise einen Makro
definiert hat, der dem Funktionsnamen gleicht, der in <string.h>
auf Zeile 130 deklariert werden soll.  Dieser Makro enthält ein
Ausrufezeichen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.