Forum: Compiler & IDEs AVR-Studio Header-Dateien inluden


von Matthias (Gast)


Lesenswert?

Hallo,

ich hab ein Problem mit meinem AVR-Stutio. Und zwar habe ich eine .c
Datei und dazu eine Headerdatei geschrieben, deren Funktionen ich jetzt
in einem anderen Programm verwenden will. In der Header Datei sind die
Prototypen der Funktionen mit extern deklariert. die Headerdatei ist in
das neue Projekt mit
#inlcude "xy.h"
eingebunden. Leider kann ich jetzt trotzdem nicht auf die gewünschten
Funktionen zugreifen und erhalte statt dessen die Fehlermeldung:
../neu.c/:43: undefined reference to 'funktionx'
Muss ich irgendo im AVR Studio noch angeben wo die c-Datei ist oder wo
liegt der Fehler?

Vielen Dank schon mal

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


Lesenswert?

Die Headerdatei verkündet nur die Deklarationen.  Der Linker
muss aber letztlich auch die Definition finden.  Du musst ihm
also sagen, dass er beide C-Dateien compilieren und das
Ergebnis gemeinsam linken soll.

Wie man das im AVR Studio sagt, müssen dir aber andere Leute
erzählen, ich hab' kein Windows (und will keins haben).

von Karl H. (kbuchegg)


Lesenswert?

Ist aber ganz simpel.

Du klickst links in der Menuestruktur auf 'Source Files'.
Rechte Maustaste: Im Pop-Down Menue waehlst Du 'Add existing
Source File(s)' und zeigst ihm die C-Datei.
Selbiges kannst Du auch noch mit dem Header machen:
Auf 'Header Files' mit der rechten Maustaste klicken, 'Add existing
Header File(s)', die Datei zeigen und fertig.

von Matthias (Gast)


Lesenswert?

Danke euch beiden, so hats geklappt. Ich habe immer nach einem Befehl
gesucht mit dem man den Compiler dazu bringt die andere Datei zu
kompilieren, und habe das nahe liegendste wohl übersehen.

von Michael Klaube (Gast)


Lesenswert?

wieso deklarierst du die Funktionen als extern?

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.