Wie lösen (float): relocation truncated to fit: R_AVR_13_PCREL

Gast #1393059
Lesenswert?
• ▲
▼
Moin,
ich habe eine ganze Reihe von Floatingpoint Berechnungen (siehe Anhang) 
auf einem AVR zu tun. Leider lässt sich der Code nicht compilieren. Der 
Linker meldet:
1
/usr/lib/gcc/avr/4.3.3/../../../avr/lib/avr51/libc.a(atan2.o):../../../libm/fplib/atan2.S:136: relocation truncated to fit: R_AVR_13_PCREL against symbol `__addsf3' defined in .text section in /usr/lib/gcc/avr/4.3.3/avr51/libgcc.a(_addsub_sf.o)
2
/usr/lib/gcc/avr/4.3.3/../../../avr/lib/avr51/libc.a(fp_arccos.o):../../../libm/fplib/fp_arccos.S:76: relocation truncated to fit: R_AVR_13_PCREL against symbol `__subsf3' defined in .text section in /usr/lib/gcc/avr/4.3.3/avr51/libgcc.a(_addsub_sf.o)

Sowie noch etwa 5 weiterer solcher Zeilen. Die Suchfunktion und Google 
brachte herraus, dass man die Mathebibliothek einbinden muss. Bei den 
ganzen Berechnungen, die ich dort veranstalte, ist mir das auch klar. 
Habe die Mathebibliothek auch mittels "-lm" angegeben, aber leider ohne 
Erfolg.

Befehl zum Kompilieren
1
avr-gcc -O2 -mmcu=at90can128 -DF_CPU=8000000 -std=gnu99 ./*.c

Das ganze wird bei mir also ohne Makefile kompiliert. Ich benutze 
einfach ein kleines Shellskript.


mfg Emperor_L0ser
Angehängte Dateien:
Gast #1393271
Lesenswert?
• ▲
▼
Das Problem habe ich mit noch einigen Stolpersteinen mehr gelöst 
bekommen.
Man muss die Mathebibliothek nicht nur angeben, sondern auch an der 
richtigen Stelle.
Dafür muss man den Befehl zum Kompilieren und Linken einzeln angeben, 
sonst steht das "-lm" beim Linken nicht richtig.

für mich sieht das ganze ohne tolles Script usw wie folgt aus.
1
avr-gcc -O2 -mmcu=at90can128 -DF_CPU=8000000UL -Wall -c uart.c
2
avr-gcc -O2 -mmcu=at90can128 -DF_CPU=8000000UL -Wall -c main.c
3
avr-gcc -O2 -mmcu=at90can128  -Wl,-u,vfprintf -lprintf_flt -lm main.o uart.o -lm

mfg Emperor_L0ser

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.