Forum: Compiler & IDEs undefined reference to.


von Reto S. (rstrub)


Lesenswert?

Hallo zusammen

Ich steh hier mal wieder vor einem Rätsel :/

Wenn ich mein Projekt (bestehend aus C, C++ und ASM) kompiliere, bekomme 
ich bei einer Funktion immer ein "undefinded reference".

Gelinkt wird wie folgt:
avr-gcc -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=16000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=obj/aes_keyschedule.o  -std=gnu99 -MMD 
-MP -MF .dep/RFID_Reader.elf.d obj/aes_keyschedule.o obj/aes256_dec.o 
obj/aes256_enc.o obj/aes_enc.o obj/aes_dec.o obj/aes_invsbox.o 
obj/aes_sbox.o obj/main.o obj/tagmanager.o obj/rfid.o obj/task.o 
obj/timer.o obj/bus.o obj/global.o obj/gf256mul.o --output 
RFID_Reader.elf -Wl,-Map=RFID_Reader.map,--cref     -lm

Als Fehler erscheint:
bus.cpp:80: undefined reference to `aes256_init(void const*, 
aes256_ctx_t*)'

Diese Funktion wird genau so im File aes_keyschedule.c beschrieben und 
auch kompiliert. Im .lst ist die vermerkt mit: .text:000001aa 
aes256_init

Hat jemand eine Idee, wie ich hier weiter vorgehen könnte?
Danke im Voraus
Reto

von Stefan E. (sternst)


Lesenswert?

Reto Strub schrieb:

> Wenn ich mein Projekt (bestehend aus C, C++ und ASM) kompiliere, bekomme
> ich bei einer Funktion immer ein "undefinded reference".

Dann hast du da wohl ein ``extern "C"´´ vergessen.

von Reto S. (rstrub)


Lesenswert?

Manchmal sucht man so weit ;)

Danke der Tipp war's ...

Viele Grüsse

von Greenhorn (Gast)


Lesenswert?

Habe gerade das gleiche Problem.

Stefan Ernst schrieb:
> Dann hast du da wohl ein ``extern "C"´´ vergessen.

Was genau meinst du damit? Erklärs mal nem Anfänger wie mir bitte.


Lieben Dank schonmal

von Stefan E. (sternst)


Lesenswert?

Greenhorn schrieb:
> Habe gerade das gleiche Problem.

Was genau bedeutet "gleiche Problem"? Nur die gleiche Fehlermeldung, 
oder wirklich auch die gleichen Rahmenbedingungen?

Greenhorn schrieb:
> Was genau meinst du damit? Erklärs mal nem Anfänger wie mir bitte.

Eigentlich lässt sich das auch super leicht er-google-n. Also werde ich 
mir jetzt nicht die Mühe machen, dass hier wiederzukäuen, zumal ja noch 
nicht mal sicher ist, ob das überhaupt tatsächlich in deinem Fall das 
Problem ist.

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.