Forum: Compiler & IDEs "undefined reference" arm-elf-ld


von Frank (Gast)


Lesenswert?

Hallo zusammen,

wenn ich zu Testzwecken die Optimierungen abschalte, kompiliert mein
Programm ganz normal. Beim Linken treten dann die Fehler auf, z.B.
"display.c:14: undefined reference to `AT91F_PIO_CfgInput'".
Auffällig ist, dass nur die "_inline"-Funktionen aus der
"lib_AT91SAM7S64.h" betroffen sind. Ich vermute, dass der Compiler
(gcc 4.10) ohne Optimierungen den Code einfach nicht entsprechend
ersetzt. Gibts da ne Lösung (außer die inlines entfernen)?

Vielen Dank

von Wolfram (Gast)


Lesenswert?

Hast du zwischenzeitlich schon ein make clean gemacht?

von Frank (Gast)


Lesenswert?

ja

von mthomas (Gast)


Lesenswert?

Vor dem Einbinden von lib_AT*.h #define __inline static inline -
funktioniert zumindest "hier". Vielleicht hilft mein Beispiel weiter:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index_at91.html#at91_gamma
(vgl. Datei board.h).

Martin Thomas

von Frank (Gast)


Lesenswert?

Danke! Das wars.
In meiner lib_AT91*.h stand "#define __inline extern inline", mit
"#define __inline static inline" funktioniert es.
Gibts dafür auch eine Erklärung?


Dein Beispiel kompiliert bei mir übrigens nicht. Fehlermeldungen:

/tmp/ccelrYOI.s: Assembler messages:
/tmp/ccelrYOI.s:163: Error: bad expression -- `swi #4'
/tmp/ccelrYOI.s:417: Error: bad expression -- `swi #4'
/tmp/ccelrYOI.s:427: Error: bad expression -- `swi #1'
/tmp/ccelrYOI.s:530: Error: bad expression -- `swi #1'
/tmp/ccelrYOI.s:543: Error: bad expression -- `swi #0'
/tmp/ccelrYOI.s:558: Error: bad expression -- `swi #4'
/tmp/ccelrYOI.s:575: Error: bad expression -- `swi #5'
/tmp/ccelrYOI.s:586: Error: bad expression -- `swi #6'
/tmp/ccelrYOI.s:602: Error: bad expression -- `swi #3'
/tmp/ccelrYOI.s:615: Error: bad expression -- `swi #2'
/tmp/ccelrYOI.s:631: Error: bad expression -- `swi #17'
/tmp/ccelrYOI.s:639: Error: bad expression -- `swi #18'
make: *** [main.o] Fehler 1

von mthomas (Gast)


Lesenswert?

auf ein Neues

von Frank (Gast)


Lesenswert?

Jetzt geht es. Ich verwende übrigens den gcc 4.1 aus GNUARM unter Ubuntu
Linux. Selbst kompiliert.

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.