www.mikrocontroller.net

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


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du zwischenzeitlich schon ein make clean gemacht?

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...
(vgl. Datei board.h).

Martin Thomas

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mthomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
auf ein Neues

Autor: Frank (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.