Gast
#3356651
Mit gcc-Version 4.8.1 (Gentoo 4.8.1-r1 p1.2, pie-0.5.7) Was ist da los?
|
Anzeige
|
AVR: undefined reference to `__muluhisi3'
Gast
#3356651
Mit gcc-Version 4.8.1 (Gentoo 4.8.1-r1 p1.2, pie-0.5.7) Was ist da los?
Gast
#3356715
Mit gcc-4.6.3 funktioniert es ohne Probleme. Willhelm schrieb: > Mit gcc-4.6.3 funktioniert es ohne Probleme. __muluhisi3 gibt es auch erst seit 4.7. Da du offensichtlich sowohl 4.6 als auch 4.8 installiert hast, ist wohl bei letzterer die libgcc (oder ein Teil davon) verschütt gegangen. Bei mir hier findet der Linker das __muluhisi3 jedenfalls. ALso folgendes Testprogramm läßt sich linken:
Wie im Map-File ersichtlich, wird gegen __muluhisi3 gelinkt:
Der Fehler kann auftauchen, wenn Objekte, die mit einem neuen (>= 4.7) Compiler erstellt wurden, mit einer alten (< 4.7) Toolchain gelinkt werden. Die widerspricht jedoch den Release Notes 4.7, siehe Caveats:
http://gcc.gnu.org/gcc-4.7/changes.html Wobei es anstatt "compiled" eigentlich "compiled and linked" heißen muß. Evtl. besteht der Fehler auch darim, daß hart gegen eine bestimmte libgcc gelinkt wird oder falsche Linkpfade angegeben wurden.
Gast
#3357047
Johann L. schrieb: > Evtl. besteht der Fehler auch darim, daß hart gegen eine bestimmte > libgcc gelinkt wird oder falsche Linkpfade angegeben wurden. Ich versuche immer nur eine Version der Tools zu installieren: cross-avr/gcc-4.8.1-r1 cross-avr/avr-libc-1.8.0 cross-avr/gcc-4.6.3 cross-avr/binutils-2.23 Den gcc-4.8.1 habe ich mit binutils und libc installiert und es lief nicht. Danach habe ich nur den gcc-4.6.3 installiert und dann lief es mit dem. Was da nun genau schief läuft bleibt mir ein Rätsel. Das Prolem ist reine GCC-Sache und hat weder etwas mit Binutils zu tun noch mit der Libc. Ohne weitere Infos kann man da nicht helfen. Evtl. ergeben sich mehr Infos aus einem Mapfile oder beim Aufruf der Tools mit -v Interessant zu wissen wäre, welche Lib-Suchpfade verwendet werden und wo jeweils die libgcc installiert wurde. Ich hatte das gleiche Problem --prefix=/home/hjh/avrgcc_4.x.y gibt beim Compilieren an, wo der Compiler hininstalliert wird. 1 binutils.2.23.1 gcc-4.7.2 avr-libc-1.8.0 Braucht LIBDIR = /home/hjh/avrgcc_4.7.2/avr/lib Beim Compilieren -mmcu=atmega32 und beim Linken -mmcu=atmega32 2 binutils.2.25.1 gcc-4.9.1 avr-libc-1.8.1 Braucht LIBDIR = /home/hjh/avrgcc_4.9.1/avr/lib Beim Compilieren -mmcu=atmega32 und beim Linken -mmcu=atmega32 3 binutils.2.25.1 gcc-5.2.0 avr-libc-1.8.1 Braucht LIBDIR = PREFIX = /home/hjh/avrgcc_5.2.0/lib/gcc/avr Beim Compilieren -mmcu=atmega32 und beim Linken -mmcu=avr5 Zumindest laufen dann Compiler und Linker. Ob das Programm auch taugt, teste ich später. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|