avr-gcc (4.4.2) / avr-libc problemas de vinculador

0

Entonces, esto parece ser un problema genérico. "libc.a" está asociado con algún tipo de incompatibilidad con las matemáticas de punto flotante y / o la biblioteca correcta utilizada.

He agregado la "-lm" como se sugiere en los foros, pero ¿aún no puedo vincular / compilar correctamente?

¿Alguna otra sugerencia?

/opt/local/lib/gcc/avr/4.0.2/../../../../avr/lib/avr5/libc.a(cmpsf2.o):../../../libm/fplib/cmpsf2.S:58: multiple definition of __ltsf2' /opt/local/lib/gcc/avr/4.0.2/avr5/libgcc.a(_lt_sf.o):/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_cross_avr-gcc/work/build/gcc/fp-bit.c:1272: first defined here /opt/local/lib/gcc/avr/4.0.2/../../../../avr/lib/avr5/libc.a(floatsisf.o):../../../libm/fplib/floatsisf.S:44: multiple definition of __ floatsisf ' /opt/local/lib/gcc/avr/4.0.2/avr5/libgcc.a(_si_to_sf. /fp-bit.c:1334: primero definido aquí /opt/local/lib/gcc/avr/4.0.2/../../../../avr/lib/avr5/libc.a(modf.o):../../ .. /libm/fplib/modf.S:88: reubicación truncada para ajustarse: R_AVR_13_PCREL contra el símbolo '__subsf3' definido en la sección .text en /opt/local/lib/gcc/avr/4.0.2/avr5/libgcc.a(_addsub_sf .o)

    
pregunta Jan de Jager

1 respuesta

1

Una pequeña explicación de lo que realmente está pasando:

El orden de argumento -l no suele importar en las computadoras, ya que la mayoría de las bibliotecas se cargan dinámicamente (.dll, .dylib o .so) y están realmente vinculadas solo en el momento de inicio del programa.

OTOH en el AVR todas las bibliotecas son estáticas. Al enlazar con bibliotecas estáticas, el enlazador agrega al programa solo las funciones que necesita actualmente de la biblioteca. Si pasa -lm en la línea de comando antes de un archivo que necesita una función particular, obtendrá errores de símbolos no resueltos.

    
respondido por el jpc

Lea otras preguntas en las etiquetas