Hallo Leute, ich hab mal wieder ein problem mit RowleyCrossworks Und zwar folgendes: Derzeit probiere ich mit einem STM32 das USB zum laufen zu bringen. Das funktioniert soweit schonmal ganz okay(wenn ich alle relevanten daten ins stammverzeichnis rein klatsche. Sobald ich probiere eine gewisse struktur zu schaffen in dem ich die USB-Dateien in einen Unterordner ablege und versuche zu kompilieren bekomme ich immer folgende fehlermeldung sobald irgendwo bool'sch variablen auftauchen: expected '=', ',', ';', 'asm' or '__attribute__' before 'Variablenname' weiß jemand woran das liegen könnte? Grüße Tarkan
soweit klar :) aber wo wird der entsprechende dateityp definiert. bzw. was muss ich in die entsprechende datei einbinden damit es hinhaut?
Peter schrieb: > typedef uint_8 bool; Hat rein garnix gebracht. Ich stelle mal die frage anders: Wieso kennt der Compiler den Typ "bool" wenn die Datei im Stammverzeichnis liegt, aber nicht wenn sie in einem Unterordner liegt?
Peter schrieb: > #define TRUE (0==0) > #define FALSE (0!=0) > > typedef uint_8 bool; auch das hilft nicht ! :(
Also ich hab die lösung gefunden:
man muss in jeden unterordner die datei "stm32f10x.h" reinkopieren
?"?!?!
irgendwie eine ziemlich blöde lösung!!
aber das hier allein hilft nichts.
#ifndef __cplusplus
typedef enum {FALSE = 0, TRUE = !FALSE} bool;
#endif
ich find es nur komisch wieso der compiler die datei mehrmals haben will
grüße Tarkan
Tarkan D. schrieb: > man muss in jeden unterordner die datei "stm32f10x.h" reinkopieren Es reicht vermtulich auch, dem Compiler den richtigen Inklude-Pfad mitzugeben.
Tarkan D. schrieb: > Also ich hab die lösung gefunden: > > man muss in jeden unterordner die datei "stm32f10x.h" reinkopieren Ziemlich sicher nicht. Man wird sich ansehen müssen, wie die #include-Anweisungen in den verschiedenen Dateien aufgebaut sind, und natürlich muss man sich auch die Fehlermeldungen genau ansehen, beginnend bei der ersten.
Übrigens, 0 und 1 tun es auch, lustige Konstrukte wie 0==0 sind überflüssig.
A. K. schrieb: > "bool" ist kein Standardtyp in Standard-C. Naja, es ist ein Standard-Typedef für _Bool (in <stdbool.h>), welches ein Standardtyp ist. Das ist seit 12 Jahren in C so genormt.
Rolf Magnus schrieb: > Das ist seit 12 Jahren in C so genormt. Dennoch sind C-Compiler, die C99 implentieren, immer noch sehr rar. Vermutlich, weil die Compilerhersteller die Vorzüge von C99 gegenüber C89 ("ANSI-C") nicht so recht zu würdigen wissen.
Rufus Τ. Firefly schrieb: > Rolf Magnus schrieb: >> Das ist seit 12 Jahren in C so genormt. > > Dennoch sind C-Compiler, die C99 implentieren, immer noch sehr rar. GCC kann's, und wir sind ja hier im GCC-Forum. > Vermutlich, weil die Compilerhersteller die Vorzüge von C99 gegenüber > C89 ("ANSI-C") nicht so recht zu würdigen wissen. Die haben aber anscheinend immer noch nicht gemerkt, daß es C89 offiziell gar nicht mehr gibt. Man kann die Definiton weder bei ANSI noch bei ISO beziehen, da sie vollständig durch C99 ersetzt wurde. Wer die C89-Definiiton nicht zufällig noch von früher im Schrank liegen hat, kommt an diese gar nicht mehr ran.
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.