Problema con funcion sin tipo en C

Iniciado por the_jocker, 29 Junio 2012, 14:47 PM

0 Miembros y 2 Visitantes están viendo este tema.

the_jocker

Si lo compile con g++ y no me chisto nada, pero voy a probar lo que decis, cualquier cosa lo posteo, gracias por tu ayuda hermano.

do-while

#11
¡Buenas!

Lo que no entiendo es como no te reconoce las funciones de math.h si has hecho el include... En principio no tendrias porque tener ningun problema...

¡Saludos!

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

PD: Leyendo por ahi, he encontrado que a gcc hay que especificarle donde estan las funciones de math.h... Como en la solucion que has dado. XD
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

avesudra

#12
the_jocker pero se supone que estas trabajando en c! deberias compilarlo con gcc no por nada sino porque se supone que el ejecercicio es en c ¿no?
do-while las funciones de math.h , más o menos , digamos que si , hay que indicarle donde están los archivos que debe linkear(donde están las funciones de esa libreria). Eso lo hacen por defecto los IDE's supongo por eso al compilar codeblocks no dice nada y supongo que con otros tampoco , sin embargo ahí estás trabajando directamente con el compilador.
Regístrate en

the_jocker

Es correcto lo que decis, es que en la facultad donde estoy son muy wondows-dependientes, entonces tengo que preogramar en dev-c++ y usar programas asi, entonces los archivos que se crean son cpp, los compila el dev-c++ y los ejecuta, es obvio que aqui en linux todo lo que se me permite en dev no me lo permite el gcc, aún asi no me quedo con esta solución, voy a entregar el trabajo asi como ellos me lo piden pero por mi cuenta quiero saber por que no me sale. Pero igual tenés razón. Gracias.

avesudra

Como en casi todos lados... A ver Dev-Cpp es un compilador de C/C++ no únicamente de C++ entonces puede crear tanto archivos de c (.c) como de c++ (.cpp) , ahora bien , no te funcionaba el primer código por lo que había dicho do-while , porque en C no se puede usar & para realizar llamadas por referencia eso es exclusivo de C++. Entonces al compilarlo con gcc (compilador de C) pues claro dice ¿eing? ¿esto que es? y dá error,y por tanto al compilar el código de tu primer post con g++ debería salirte bien.
Regístrate en

the_jocker

Es cierto, por ahí soy medio gil para explicarme, el dev-c++ el archivo .c como lo dejamos al final funcion, es decir con los apuntadore, compila bien, y de la otra forma con el archivo cambiado con los & y .cpp tambien me lo toma bien, en la consola me da problemas con la libreria math.h porque el error me lo marca en sqrt y pow, nose porque, no me animo a opinar ya que nose si vienen activado por defecto o no. Gracias.

do-while

¡Buenas!

Si prefieres no trabajar directamente con gcc, puedes instalarte codeblocks:

sudo apt-get install codeblocks (creo)

Asi tienes un ide y ya no tienes porque preocuparte de enlazar las librerias a mano.

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

avesudra

#17
Ese problema también me salía a mí y lo puse en un post anterior que edité pero te lo pongo aquí también que me parece que no lo has visto, tienes que compilar usando esto , las primeras xxx son las de tu archivo en c y las ultimas las de el ejecutable de salida, el problema era que claro incluimos math.h que es donde están los prototipos de la funcion pero no linkeamos a donde están explicadas :
gcc -Wall xxx.c /usr/lib/....../libm.a -o xxx
tienes que encontrar el libm.a y poner su dirección completa en mi Ubuntu 11.10 está en /usr/lib/x86_64-linux-gnu/libm.a
PD: Si al fin y al cabo vas a trabajar usando un IDE yo uso codeblocks y por lo que se vé do-while también , mi opinión perosonal es que es un buen editor...
Regístrate en

durasno

Hola! creo q no es necesario la ruta completa, yo lo hago asi:

gcc archivo.c -o archivo -lm

con solo agregar -lm me toma la libreria math.h



Con respecto a lo de & en la funcion o no ya te lo explicaron bien, pero lo que no me quedo claro es si te estan enseñado C o C++???


Saludos
Ahorrate una pregunta, lee el man

avesudra

#19
Voy a probar durasno y ahora te digo, es lo que he leido en internet en ingles de como solucionar el error, yo todavia no me he enterado tampoco , pero por lo que se vé supongo que C++ por lo de los valores por referencia.

EDITADO: Si durasno compila perfectamente , entonces quedaria como gcc xxx.c -Wall -lm -o xxx
Regístrate en