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
Poste bitte Deinen Quelltext. Die string.h lässt sich normalerweise problemlos mit dem Befehl "#include <string.h>" einbinden.
Die h-Files immer als erstes einbinden. Dann führen eigene Syntaxfehler nicht zu Fehlermeldungen in den h-Files. Peter
>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.
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
... 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!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.