Intentando correr Makefile, Version B.

Intentando correr Makefile, Version B.

de Sebastian Enrique Ortiz Gonzalez -
Número de respuestas: 7

Estimados foristas buenas noches, estoy intentando correr el makefile del obligatorio 1, con el codigo subido por Gregory (imagen.h, imagen.c y obligatorio1.c), sin embargo se me despliega el siguiente mensaje, no pudiendo continuar con la siguiente etapa. Por favor indicar alguna recomendacion. 

Muchas gracias.

Saludos cordiales.

Sebatian./

pie@pie-virtualbox:~/Desktop/Obligatorio1$ make
cc  -o obligatorio1 obligatorio1.o -L./ -limagen -liio -ljpeg -ltiff -lpng -lm
/usr/bin/ld: .//libiio.a(iio.o): in function `fill_temporary_filename':
/home/gregory/Documents/PIE/2024/iio-masterNuevo/iio-master/gregory/iio.c:491: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
/usr/bin/ld: obligatorio1.o: in function `main':
obligatorio1.c:(.text+0x38d): undefined reference to `Plot_Histo'
/usr/bin/ld: obligatorio1.c:(.text+0x44e): undefined reference to `Plot_Histo'
/usr/bin/ld: obligatorio1.c:(.text+0x4b4): undefined reference to `Plot_Histo'
/usr/bin/ld: obligatorio1.c:(.text+0x566): undefined reference to `Plot_Histo'
/usr/bin/ld: obligatorio1.c:(.text+0x5cc): undefined reference to `Plot_Histo'
/usr/bin/ld: obligatorio1.c:(.text+0x6ab): undefined reference to `AgregarRudioGaussiano'
collect2: error: ld returned 1 exit status
make: *** [makefile:11: obligatorio1] Error 1

En respuesta a Sebastian Enrique Ortiz Gonzalez

Re: Intentando correr Makefile, Version B.

de Sebastian Enrique Ortiz Gonzalez -
Hola buenas tardes, alguna recomendación para el tema?
Muchas gracias.
Saludos cordiales.
Sebastián.-
En respuesta a Sebastian Enrique Ortiz Gonzalez

Re: Intentando correr Makefile, Version B.

de Graciana Castro -
Hola Sebastian,

Está queriendo decir que en obligatorio1.c usa Plot_Histo y AgregarRudioGaussiano que no existen. El obligatorio1.c que estas usando es el de Gregory? Fijate en qué lugares usa plot_histo y comentá esas lineas. Y fijate en qué lugares dice AgregarRudioGaussiano en vez de AgregarRuidoGaussiano y cambialo.

Saludos,
Graciana
En respuesta a Graciana Castro

Re: Intentando correr Makefile, Version B.

de Sebastian Enrique Ortiz Gonzalez -

Graciana buenos días, si, sigo la recomendación de utilizar los archivos de Gregory para probar lo solicitado en el Obligatorio 02. Gracias por los datos, me fijo y veo si puedo continuar. Saludos cordiales.

Sebastián.-

En respuesta a Sebastian Enrique Ortiz Gonzalez

Re: Intentando correr Makefile, Version B.

de Sebastian Enrique Ortiz Gonzalez -
Hola buenas noches, implemente en el codigo de Gregory las recomendaciones entregadas y funciono, sin embargo ahora se me despliega el siguiente mensaje
pie@pie-virtualbox:~/Desktop/Obligatorio1$ ./obligatorio1 color.png G
Convierto a gris
double free or corruption (out)
Aborted (core dumped)
Aca es como que pierdo la memoria, esto ya me habia pasado con mi codigo del Obligatorio 1. Cabe la posibilidad de que sea algun tipo de problema del tipo del compilador? entiendo que hay mas de una version de c++. Por otro lado intente descargar la maquina virtual y me baja un archivo de texto con codigo binario y solo 9Mb.
Aguardo recomendacion.
Saludos cordiales.
Sebastian.
En respuesta a Sebastian Enrique Ortiz Gonzalez

Re: Intentando correr Makefile, Version B.

de Gregory Randall -
estimado
trata de leer el mensaje e interpretar lo que dice.
en este caso te están diciendo que haces dos free de una misma reserva de memoria. Como ya la libertaste la 1ra vez, la segunda da un error.
debes revisar en tu programa, cada vez que haces una reserva dinámica de memoria (malloc o calloc) esa variable debe ser liberada con un free en algún momento, pero una vez liberada no se debe volver a hacer free sobre esa variable, ni accederla de ninguna manera
saludos
gregory
En respuesta a Gregory Randall

Re: Intentando correr Makefile, Version B.

de Sebastian Enrique Ortiz Gonzalez -

Profesor buenos días, si bien entiendo lo que me responde, asumía que al utilizar su código no iba a llegar a esto, es mas, pienso que como tengo el compilador del año pasado, estuve intentando instalar nuevamente la máquina virtual (lo cual pude hacer al final ayer de noche) para probar con el compilador de este año, porque sospecho que es el compilador. Volviendo al tema de "revisar mi programa", mi programa es el del obligatorio 02, seguí la sugerencia de utilizar SU código en lo que tiene relación con el Obligatorio 01. Esa es la idea no? o entendí cualquier cosa?

Aguardo recomendación.

Saludos cordiales.

Sebastián.-

En respuesta a Sebastian Enrique Ortiz Gonzalez

Re: Intentando correr Makefile, Version B.

de Gregory Randall -
usar mi código para las funciones básicas del obligatorio 1 no implica que no deban analizar como liberara la memoria en cada caso. lo que tienes es un doble free, eso no tiene que ver ni con el compilador ni con la maquina virtual. Analiza tu código.