Hallo zusammen, bin grade dabei, auf einem MSP430 ein Prog zum Ansprechen einer SD-Card zu schreiben. Da bietet es sich ja an, mehrere Files zu verwenden (Nicht nur main.c). Nur ist das mit dem #include so eine Sache. Ich hab' mehr Zeit damit verbraucht, das Zeugs in der richtigen Reihenfolge zu includen als ich für den eigentlichen Code benötigt habe. Nun kann er zwar alles kompilieren, aber dann kommt dieser Fehler: Error[e27]: Entry "SD_Init" in module SDCard ( C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\ Developing\MSP430 - Test\F1121\SD-Card\Debug\Obj\SDCard.r43 ) redefined in module main ( C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Developing\MSP430 - Test\F1121\SD-Card\Debug\Obj\main.r43 ) Kann mir irgendwer sagen, was das bedeuten soll und noch wichtiger, wie man den Fehler behebt? Includerei sieht so aus: 1. main.c -> include msp430x16x.h 2. main.c -> include SDCard.c 3. SDCard.c -> include SDCard.h 4. SDCard.h -> include msp430x16x.h Punkt vier ist auch etwas seltsam. Wenn ich den Include-Befehl rausnehme, dann kennt er in der SDCard.c die Definitionen nicht mehr, die dort eigentlich drinstehen sollten. Obwohl des File ja schon von main.c geladen wird. Ich wäre froh, wenn mir jemand sagen könnte, was der oben genannte Fehler bedeuten soll und wie man ihn wegkriegt. Besten Dank im Voraus und Gruss Philipp
Also ich mach mir immer eine include.h wo alle #include Sachen drinne stehen. Dann brauch ich in jeder .c Datei nur immer #include "include.h" schreiben und alles ist gut. Alle .h Dateien bekommen folgendes rein: #ifndef NAME_DER_DATEI_H #define NAME_DER_DATEI_H 1 . . Code . #endif Damit ist sichergestellt das es keine doppelten Einbindungen gibt, was wohl bei dir passiert ist.
kenn diese Meldungen aus der IAR, wenn man .c-Dateien includen möchte, IAR mag das nicht (wird auch sonst nicht gern gesehen, da schlechter Stil)... schreib ein ordentliches Headerfile, oder mach eine Funktionen aus der SDCard.c mit dem "extern Befehl" in der main.c bekannt... ganz nebenbei, müsste das ganze sogar funzen, wenn du aus .c einfach ein .h machst... gruß ehde76
Funktioniert jetzt. Danke nochmal, es lag wohl wirklich daran, dass ich .c-Dateien eingebunden habe.
Philipp Burch schrieb: > Funktioniert jetzt. Danke nochmal, es lag wohl wirklich daran, > dass ich > .c-Dateien eingebunden habe. Hi Philip, ich habe gerade auch das Problem Error[e27]. kannst du mir bitte kurz zeigen, wie du das Problem behoben hast? was und wo musstest du also im Programm schreiben? Besten Dank im Voraus und Grüß, Martin
Martin Gate schrieb: > kannst du mir bitte kurz zeigen, wie du das Problem behoben hast? Glaubst Du, daß Philip hier nach nur NEUN JAHREN noch mitliest?
Im ersten Post unter 2. wird ein c file includiert, dass noch im Projekt aufgenommen wird. Alle Symbole sind daher doppelt vorhanden, z. B. Funktionen und globale Variablen. Der Linker steht jetzt vor der Qual der Wahl, und gibt auf: Error … Das ist nicht IAR spezifisch, sondern führt bei jedem Compiler/Linker zu einem Abbruch.
Linker schrieb: > Im ersten Post unter 2. wird ein c file includiert, dass noch im > Projekt > aufgenommen wird. Alle Symbole sind daher doppelt vorhanden, z. B. > Funktionen und globale Variablen. Der Linker steht jetzt vor der Qual > der Wahl, und gibt auf: Error … > > Das ist nicht IAR spezifisch, sondern führt bei jedem Compiler/Linker zu > einem Abbruch. welche Symbole sind daher doppelt vorhanden? der Fehler sieht bei mir so aus (siehe Bild)
Martin Gate schrieb: > welche Symbole sind daher doppelt vorhanden? "finetune" Mach dich aml über die richtige Verwendung von Headern schlau. ;-)
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.