Usando funciones dobles largas con gcc

Usando funciones dobles largas con gcc

Me está costando mucho lograr que gcc de Ubuntu comprenda las long doublefunciones de manipulación de math.h, es decir sqrtl, cabsly cexpl. El mensaje que recibo para todos ellos al compilar es

undefined reference to `sqrtl'

¿Hay alguna otra bandera aparte de -lmesa que debo poner en la línea de comando para que gcc comprenda estas funciones? ¿Es un paquete perdido? ¿O es un problema con la versión que estoy usando (4.6.1 en Oneiric)?

Respuesta1

El problema está en el orden en que se pasan los argumentos al compilador.

En Oneiric, las bibliotecas vinculadas deben llamarsedespuésel nombre del archivo fuente:

gcc test.c -lm

Este cambio y las razones del mismo se describen con más detalle.aquí.

El problema no aparece para funciones de valores constantes porque gcc tiene versiones integradas de ellas. Entonces compilar -fno-builtinda el mismo error que con una variable en el argumento.

Gracias porJason Contipara esta información.

información relacionada