Pues como ya he comentado en alguna entrada anterior ( creo ) estoy estudiando programacion C, poco a poco y en los ratos libres que tengo, motivo por el que aún escribo menos de lo habitual por aquí y le presto menos atención a otras paginas o blog’s que solia visitar casi a diario.
El problema con el que os vengo hoy lo he tenido hace un rato trabajando con un código en C que hace uso de la biblioteca <math.h> ademas de la <stdio.h> que creo que se usa para casi todo 😉 y es que tras escribir el código fui a compilarlo con el mismo Geany y este me lanza un error
Como si el compilador no incluyera la libreria math.h, me dice «referencia a ‘pow’ sin definir» (pow se utiliza para realizar operaciones de potencias, acabo de aprenderlo 🙂 )
Entonces me voy a lo clasico, consola y gcc, con el siguiente resultado
gcc archivo.c -o archivo
Entonces ya me empiezo a mosquear porque en cosas así pierdo un montón de tiempo que no tengo rebuscando por la red la solución, pero sigo leyendo el libro que estoy usando y me viene una pequeña nota que dice:
[nota: En muchos compiladores de C UNIX, usted debe incluir la opción -lm cuando compile el programa. Esto vincula la biblioteca de funciones matematicas con el programa.]
Dicho y hecho, vuelvo a la terminal y tipeo:
gcc -lm archivo.c -o archivo
Y compila correctamente, sin errores. Asta aquí solucionado, pero es engorroso escribir un programa y tener que ir a la terminal a compilarlo y probarlo así que me pongo a trastear entre la configuracion de Geany haber donde tienes las opciones del compilador para intentar cambiarlas agregando este -lm y que me funcione (almenos en los ejercicios que ando haciendo actualmente).
Pues las encontre 🙂 , Estan en la pestaña Construir / Estabalecer comandos de construcción, os encontrareis algo como esto
Y tan facil como cambiar en el bloque Comandos en C la opción construir de gcc -Wall -o «%e» «%f» a gcc -lm -o «%e» «%f» , guardamos y ya podremos compilar, construir y ejecutar de nuevo el programa desde nuestro propio Geany, con la comodidad que eso conlleva.
Aqui una muestra de que funcionar, funciona. De momento almenos, haber cuando incluya mas bibliotecas que extraños hace entonces xD
Pingback: Bitacoras.com
Hermano por favor necesito tu ayuda mi geany me muestra un error y no se que hacer realmente. Espero que puedas ayudarme, en el momento en que te llegue este mensaje podrias comunicarte conmigo para darte mas informacion sobre el error! Gracias espero tu respuesta!
Si claro, pega el error o pon una captura para que lo vea a ver si te puedo ayudar
hola necesito ayuda , hace rato estoy programando y me aparecen varios errores y no se si es un problema mio en el análisis o que sucede
Gracias por fin encuentro una buena solucion-
Hola , cuando pongo compilar me salta » El proceso ha fallado {El sistema no puede encontrar el archivo especificado «} . Por que puede ser ? Gracias
Si pudieras poner una captura de pantalla o algo así, vería de que se puede tratar.
Un saludo
que libro utilizas , tengo el mismo problema y me gustaria ver con mas detelle
Este es el libro que sigo
gcc: error: “p5.c”: No existe el archivo o el directorio
Pues configuré el Geany como recomendaste y ahora salta ese error… no logro compilar con éxito
Hace tiempo que no uso geany pero si me pones una captura o algo que lo pueda ver te lo miro.
Has probado a compilar desde la consola?? quizás nos de más datos de que puede pasar.
Se me ocurre que puedes intentar compilar sin haber salvado el archivo, ya que dice que no existe.
he intentado hacer lo mismo que tu porque necesito utilizar el math.h con ceil y floor y no me ha dejado
hice esa modificacion pero el problema persiste, de hecho cualquier cosa que haga en este windows me pide permiso, quizas es por los privilegios de cuenta de usuario, si es ese el problema y no permite que geany tenga permisos de escritura sobre el disco raiz entonces no tengo idea de como resolverlo 🙁
Hola a todos, en mi caso ocurria igual, pero encontre resolverlo de otra manera, tan facil como cambiar en el bloque Comandos en C la opción construir de gcc -Wall -o «%e» «%f» a gcc -Wall -o «%e» «%f» -lm, guardamos y ya podremos compilar, construir y ejecutar de nuevo el programa desde nuestro propio Geany, con la comodidad que eso conlleva.. Como pueden observar, yo deje el -Wall y el -lm lo coloque al final, me di cuenta que el orden de las instrucciones tienen efectos distintos.
Aunque hace mucho que no uso geany me lo apunto.
Gracias por el aporte