Forum: Mikrocontroller und Digitale Elektronik Problem mit undefined reference to


von Mr. D (Gast)


Lesenswert?

Ich habe ein Programm für die FFT.
Obwohl alles eingebuden ist, kommt immer diese Fehlermeldung:

undefined reference to `fft_input'
undefined reference to `fft_execute'
undefined reference to `fft_output'



Ich habe schon nach dieser Fehlermedlung gesucht, was sie überhaupt 
bedeutet.
Gefunden habe ich, dass ich bei der Deklaration
1
 extern "C"

einbauen soll.
Mehr weiß ich leider nicht.
1
void fft_input (const complex_t *, complex_t *);
2
#else
3
void fft_input (const int16_t *, complex_t *);
4
#endif
5
#endif
6
void fft_execute (complex_t *);
7
void fft_output (complex_t *, uint16_t *);
8
int16_t fmuls_f (int16_t, int16_t);

Was muss ich jetzt machen?

von Oliver J. (skriptkiddy)


Lesenswert?

Welcher Compiler?
Nutzt du C++?

von Mr. D (Gast)


Lesenswert?

Ich nutze das AVRStudio 4. Ich benütze einen C Compiler.

von hp-freund (Gast)


Lesenswert?

Mr. D schrieb:
> Obwohl alles eingebuden ist,

Bist Du sicher?
Gibt es für die .h Datei auch die passende .c Datei?
Bei derartigen Funktionen könnte ich mir auch vorstellen das es keine .c 
Datei gibt, sondern nur eine Lib die dann natürlich auch dazu gehört...

von Mr. D (Gast)


Lesenswert?

Die benötigte Header Datei habe ich so eingebunden:

#include <ffft.h>

Ich habe das bis jetzt immer so bei anderen Programmen gemacht und da 
hat es funtioniert. In diesem Programm habe ich auch andere header 
Dateien und mit denen funktioniert das tadellos.
Ich habe gelesen, dass es bei mir mit den C++/C kompiler was zutun hat, 
da ich einen Teil des Programmes übernommen habe.

von Mr. D (Gast)


Angehängte Dateien:

Lesenswert?

Hier die ganze header Datei

von hp-freund (Gast)


Lesenswert?

Wie schon gesagt. Deklaration der Funktionen ist da, wo ist der Inhalt?
Bei deinen anderen funktionierenden Headern gibt es garantiert eine .c 
oder Lib Datei. Schau mal nach...

von Mr. D (Gast)


Angehängte Dateien:

Lesenswert?

Falls noch hilfreich hier der assembler code.

von hp-freund (Gast)


Lesenswert?

Aha.
Da ist der Inhalt der Funktionen. Hast Du die .S Datei auch eingebunden?
Wenn ja, und wenn Du kein externes makefile sondern das vom Studio 
benutzt, kann es nur noch an einem Fehler in den diversen #ifdef liegen.

von Konrad S. (maybee)


Lesenswert?

Mr. D schrieb:
> Ich habe schon nach dieser Fehlermedlung gesucht, was sie überhaupt
> bedeutet.

Das sind Linker-Fehlermeldungen. Sie besagen, dass der Linker die 
angegebenen Funktionen nicht findet. Das passiert bei Zusammenbau des 
fertigen Programms.
Das kann daran liegen, dass die Quellcode-Datei, die die Funktionen 
enthält nicht in das Projekt eingebunden wurde.

von Marwin (Gast)


Lesenswert?

Das bringt so nichts. Du wirst das ganze Projekt einstellen muessen, 
damit man das ganze ordentlich nachvollziehen kann.

von Mr. D (Gast)


Lesenswert?

Danke für die Hilfe.
Alles funktioniert jetzt, ich dachte es reicht die assebler Datei 
einfach dazuzugeben. Jetzt habe ich sie eingebunden und alles 
funktioniert.

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.