Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Caster en 20 Octubre 2012, 21:33 PM

Título: Error al compilar en Linux
Publicado por: Caster en 20 Octubre 2012, 21:33 PM
Pues estaba probando a compilar el codigo de una calculadora que hice en windows, a hacerlo en Linux para ir viendo las diferencias porque me quiero pasar a Linux, el codigo es el que deje aqui:

http://foro.elhacker.net/programacion_cc/calculadora_hecha_en_c-t373901.0.html

Y lo unico que he cambiado es la linea

system("cls");

Por esta:

system("clear");

Pero me da error al compilar, que mas debo de cambiar del codigo para que me compile en Linux?

Saludos
Título: Re: Errol al compilar en Linux
Publicado por: avesudra en 20 Octubre 2012, 21:40 PM
¿Qué error te da? De todas maneras que yo sepa , la funcion system está definida en:
#include <stdlib.h>
Y tú no la tienes incluida.

¡Un saludo!
Título: Re: Errol al compilar en Linux
Publicado por: Caster en 20 Octubre 2012, 21:57 PM
No cambiaria nada si añado esa libreria porque en windows me compila perfectamente y la funcion system esta en el codigo, aun asi probe a añadirla y a compilar y sigue dando el mismo error, no puedo copiarlo exactamente porque estoy trabajando en ubuntu pero sin conexion a Internet y para postear cambio a Windows, aunque el error es algo asi:

CitarIn fuction 'potencia':
undefined refenrence to pow
In fuction 'raiz_cuadrada':
undefined reference to sqrt
In fuction 'seno':
undefined reference to sin
In fuction 'coseno':
undefined reference to cos
In fuction 'tangente':
undefined reference to tan


Creo recordar que era algo asi

Saludos
Título: Re: Errol al compilar en Linux
Publicado por: avesudra en 20 Octubre 2012, 22:07 PM
Si bueno porque es una declaración implícita pero es mejor ponerla.El error que pones es del linker claramente ¿estás compilando desde la terminal o desde algún IDE? Revísate este post https://foro.elhacker.net/programacion_cc/problema_con_funcion_sin_tipo_en_c-t365662.0.html
Título: Re: Errol al compilar en Linux
Publicado por: Stakewinner00 en 20 Octubre 2012, 22:08 PM
que compilador usas en windows y linux?
Título: Re: Errol al compilar en Linux
Publicado por: NeoB en 20 Octubre 2012, 22:12 PM
Viendo el error creo que es por que no incluiste la librería math. Añade la opción "-lm" en el comando del compilador:
gcc -o calc main.c -lm
Dime si no es.
Título: Re: Errol al compilar en Linux
Publicado por: Caster en 20 Octubre 2012, 23:34 PM
Pues en windows uso MinGw y en linux pues gcc logicamente. Ya habia leido algo de añadir -lm al compilador y habia probado asi:

Citargcc -lm main.c -o ejecutable

Pero asi seguia sin ir, probe asi:

Citargcc  main.c -o ejecutable -lm

Y asi compilo sin ningun problema, muchas gracias a todos

Saludos