Tengo problemas con el archivo de encabezado math.h y cuando uso la función de raíz cuadrada como en sqrt(d). Pero mi compilador no es compatible con esto. Por favor avísame sobre este problema.
Si bien nos encantan las preguntas de programación, la pregunta debe estar relacionada con Ubuntu, ¿puede aclarar en detalle cuál es el problema aquí, ejemplos, etc.?
fossfreedom
es como sqrt ((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)) ... mi compilador no admite este comando
shreya
1
por favor responda editando su pregunta. Dé ejemplos de código, cómo está compilando, la versión de ubuntu, la versión del compilador, ¿ha intentado hacer esto en otro compilador / distribución? ¿Qué pasa etc.?
fossfreedom
1
@shreya Las preguntas sobre problemas con el código que ha escrito deben describir el problema específico, e incluir un código válido para reproducirlo, en la pregunta misma. Ver SSCCE.org para orientación.
Braiam
44
Realmente no creo que esto esté fuera de tema. En muchos otros sistemas operativos, como Windows, no es necesario pasar una opción especial de enlace para usar la biblioteca matemática en los programas en C. Incluso en algunos sistemas operativos tipo Unix, la implementación estándar de la biblioteca C no requiere esto. Este es un problema que enfrentan muchos usuarios cuando cambian a sistemas GNU / Linux como Ubuntu. Desearía que la pregunta se escribiera mejor para incluir el error específico: si terminamos considerando este tema, tal vez deberíamos editarlo, pero esta no es una pregunta general de programación en C, es una pregunta sobre cómo usar gccUbuntu .
Eliah Kagan
Respuestas:
24
Anexar -lmal final de su gcccomando.
Con todas las versiones recientes de GCC en sistemas GNU / Linux como Ubuntu, cuando usa la biblioteca matemática, debe vincularla explícitamente. No se vincula automáticamente con el resto de la biblioteca estándar de C.
Si va a compilar un programa C con la biblioteca math.h en LINUX usando GCC o G ++, deberá usar la opción –lm después del comando de compilación.
gcc xyz.c -o xyz -lm
Aquí,
gcc es el comando del compilador (nombre del compilador) xyz.c es un nombre de archivo fuente. -o es una opción para especificar el archivo de salida. xyz es el nombre del archivo de salida. -lm es una opción para vincular contra la biblioteca matemática ( libm ).
gcc
Ubuntu .Respuestas:
Anexar
-lm
al final de sugcc
comando.Con todas las versiones recientes de GCC en sistemas GNU / Linux como Ubuntu, cuando usa la biblioteca matemática, debe vincularla explícitamente. No se vincula automáticamente con el resto de la biblioteca estándar de C.
Si está compilando en la línea de comandos con el comando
gcc
og++
, lo lograría colocando-lm
al final del comando .Por ejemplo:
gcc -o foo foo.c -lm
fuente
Si va a compilar un programa C con la biblioteca math.h en LINUX usando GCC o G ++, deberá usar la opción –lm después del comando de compilación.
Aquí,
gcc es el comando del compilador (nombre del compilador)
xyz.c es un nombre de archivo fuente.
-o es una opción para especificar el archivo de salida.
xyz es el nombre del archivo de salida.
-lm es una opción para vincular contra la biblioteca matemática ( libm ).
para más detalles aquí está el enlace que contiene el artículo completo sobre el mismo.
Compilando el programa C con math.h en Linux.
fuente