Linker-Fehler

Gast #2298569
Lesenswert?
• ▲
▼
Hallo zusammen,

bin gerade von AVR-Studio auf Eclipse umgestiegen. Hat bis jetzt gut 
funktioniert.
Jetz wollte ich ausnahmsweise die funktions sprintf() benutzen
und schon bringt mir der Linker einen Fehler
Ich hab die stdio.h eingebunden.

Linker Output:
Invoking: AVR C Linker
avr-gcc -Wl,-Map,ArbGenerator2.1.map -mmcu=atmega128 -o 
"ArbGenerator2.1.elf"  ./Bitmap.o ./Draw.o ./F16X8A.o ./F16X8B.o 
./F16X8C.o ./F8X6.o ./F8X8A.o ./F8X8B.o ./Fontsoft.o ./Main.o ./T6963.o 
./circle.o ./data.o ./f6x4fv.o ./f6x5fv.o ./f8x6fv.o ./f8x8fv.o 
./globals.o ./hardwaretreiber.o ./uart.o ./utilitys.o
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/avr51\li 
bc.a(fp_powsodd.o):  In function `__fp_powsodd':
(.text.fplib+0x10): relocation truncated to fit: R_AVR_13_PCREL against 
symbol `__mulsf3' defined in .text section in 
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/avr51\libgcc.a(_mul_sf.o)
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/avr51\li 
bc.a(fp_powsodd.o):  In function `__fp_powsodd':
(.text.fplib+0x20): relocation truncated to fit: R_AVR_13_PCREL against 
symbol `__mulsf3' defined in .text section in 
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/avr51\libgcc.a(_mul_sf.o)
make: *** [ArbGenerator2.1.elf] Error 1


Leider kann ich nicht lokalisieren wo der Fehler liegt.
Wenn ich sprintf() auskommentiere sind die Fehler weg


Kann da jemand drüberschaun oder weis einer eine Möglichkeit den Fehler 
besser einzugrenzen?


Danke!

Benedikt Lippert
Gast #2298650
Lesenswert?
• ▲
▼
Hallo

Building target: ArbGenerator2.1.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,ArbGenerator2.1.map -lm -mmcu=atmega128 -o 
"ArbGenerator2.1.elf"  ./Bitmap.o ./Draw.o ./F16X8A.o ./F16X8B.o 
./F16X8C.o ./F8X6.o ./F8X8A.o ./F8X8B.o ./Fontsoft.o ./Main.o ./T6963.o 
./circle.o ./data.o ./f6x4fv.o ./f6x5fv.o ./f8x6fv.o ./f8x8fv.o 
./globals.o ./hardwaretreiber.o ./uart.o ./utilitys.o
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/avr51\li 
bc.a(fp_powsodd.o):  In function `__fp_powsodd':
(.text.fplib+0x10): relocation truncated to fit: R_AVR_13_PCREL against 
symbol `__mulsf3' defined in .text section in 
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/avr51\libgcc.a(_mul_sf.o)
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/avr51\li 
bc.a(fp_powsodd.o):  In function `__fp_powsodd':
(.text.fplib+0x20): relocation truncated to fit: R_AVR_13_PCREL against 
symbol `__mulsf3' defined in .text section in 
c:/winavr-20080610/bin/../lib/gcc/avr/4.3.0/avr51\libgcc.a(_mul_sf.o)
make: *** [ArbGenerator2.1.elf] Error 1


Hast du das so gemeint?

Funktioniert wieder nicht.


Danke aber!
Moderator Persönliche Seite #2298698
Lesenswert?
• ▲
▼
Benedikt Lippert schrieb:

> Was bedeutet der Befehl -lm?

Dass die Bibliothek libm.a nach Symbolen zu durchsuchen ist, die zu
diesem Zeitpunkt in der Symboltabelle "global undefined" sind.
Enthält die gerade durchsuchte Bibliothek einen Modul, der ein solches
Symbol auflöst, dann wird dieser Modul komplett dazu gelinkt und die
aktuelle Bibliothek nochmals durchsucht, falls der Modul neue "global
undefined"-Symbole verursacht hat.

Damit ist auch klar, warum die Option am Anfang der Kommandozeile
keine Wirkung hat: zu diesem Zeitpunkt gibt es noch kein einziges
Symbol mit "global undefined" in der Symboltabelle.  (Einzige
mögliche Ausnahme hier: wenn man ein solches Symbol durch die
Linkeroption -u selbst auf der Kommandozeile bereits erzeugt.)

> Gibts da irgendwo eine Erklärung zu den Linker Einstellungen?

Im Linker-Handbuch der GNU binutils.
Gast #2298713
Lesenswert?
• ▲
▼
Hallo
Danke für die Erklärung.
Im Groben versteh ich was der Befehl macht. Muss mich mal genau in den 
"Linker" einlesen.
Bin doch nur E-Technikstudent und kein Informatiker^^

mfg Benedikt Lippert

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.