Forum: Mikrocontroller und Digitale Elektronik Linker error redefined: defined


von Micha (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

ich habe in meinem Programm einen Linker Error.

Ich denke ich habe die zwei Funktionszeiger-Arrays doppelt definiert bin 
mir aber nicht sicher wo.

Vielleicht hat ja einer einen Vorschlag.


Gruß

Micha

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du definierst die Arrays in der Headerdatei, statt sie dort nur zu 
deklarieren.

Da Du die Headerdatei aber mehrfach einbindest, werden die Arrays für 
jedes Einbinden erneut erzeugt.

von Micha (Gast)


Lesenswert?

Danke für die schnelle Antwort.
Hast Recht, das werde ich gleich mal ausprobieren.

von Micha (Gast)


Lesenswert?

Muss ich in der Header-Datei eigentlich noch ein extern vor das Array 
stellen? So etwa:
1
//   Funktionstabelle
2
extern state_func_t* const state_table[NUM_STATES];

Oder ist das unnötig.

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


Lesenswert?

Micha schrieb:
> Muss ich in der Header-Datei eigentlich noch ein extern vor das Array
> stellen?

Ja, sonst ist es keine Deklaration, sondern eine Definition.

Datendeklarationen brauchen immer ein “extern”.  Funktionsdeklara-
tionen brauchen das nicht (sie sind immer anhand des abschließenden
Semikolons erkennbar), aber man darf es auch bei diesen davor schreiben.

von Micha (Gast)


Lesenswert?

Alles klar meine Fehlerliste ist jetzt schon gut geschrumpft :D

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.