Codeblocks dejó de funcionarme con el glut al actualizar a kubuntu 12.04 [Solucionado]

Tengo el siguiente problema, hace poco actualice kubuntu 11.10 a la versión 12.04 y el codeblocks dejo de funcionarme con el glut. Verán en la antigua versión si funcionaba bien, hay una parte cuando el codeblocks pide la ruta de las librerías del glut y poniendo /usr era suficiente, pero ahora me dice que no encuentra las librerías. Por favor ayúdenme, tengo desde ayer buscando una solución y no encuentro nada.

Pon una captura de pantalla.
Lánzalo por consola y muestra los errores que muestre.
¿Has actualizado conservando los configuraciones? Prueba renombrando la carpeta correspondiente.

Por favor, lee y respeta las normas del foro:
http://www.kubuntu-es.org/normas-foro

Lee este anuncio:
http://www.kubuntu-es.org/foro/201209/hilos-que-no-cumplan-normas-priori

NORMAS DEL FORO escribió:


04. Escribe títulos descriptivos

Es obligatorio escribir títulos descriptivos, debes explicar breve y concisamente sobre qué trata el mensaje completo. No se permiten asuntos como "AYUDA", "TENGO UN PROBLEMA", "Problema con X aplicación", "Problema con X paquete", etc. dado que no informan en absoluto sobre el contenido del mensaje. No deben de estar en mayúscula. Si el asunto es explícito se facilitará la búsqueda por parte de terceros. Por favor es importante que leas más al respecto en este enlace:
http://www.kubuntu-es.org/foro/201008/titulos-hilos-que-no-son-descriptivos-comienzan-problema-ayuda-etc

En esta ocasión no he cerrado el hilo, lo he editado para que el respetable pueda ver que no es tan difícil poner un título descriptivo. Basta escribir lo mismo que pondríais en la primera frase del hilo. No queremos títulos "dramáticos" como para una obra, queremos que el título explique el problema. Cualquier aclaración al respecto en los enlaces, que al menos los de las normas deberían estar más que leídos antes de postear.

Gracias.

Hola.
Por favor, la próxima vez da más detalles de los programas que estás utilizando, dando una pequeña explicación sobre de que se trata cada uno, y si es posible indicando enlaces oficiales. Además, el nombre de los paquetes que los instalan en Ubuntu.

Aprende a buscar archivos dentro de los paquetes instalados con dpkg:

dpkg --help

No estoy seguro, pero supongo que las librerías de ese "glut" que mencionas se instalan por medio de el paquete "freeglut3".

dpkg -L freeglut3

Resultado:

/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libglut.so.3.9.0
/usr/share
/usr/share/doc
/usr/share/doc/freeglut3
/usr/share/doc/freeglut3/changelog.Debian.gz
/usr/share/doc/freeglut3/copyright
/usr/lib/x86_64-linux-gnu/libglut.so.3

Esos datos son de la versión del paquete de Precise en Ubuntu Updates (el que se está utilizando actualmente). Al parecer han habido cambios en las rutas respecto a lo que se venía utilizando en otras versiones, incluso en las rutas del paquete de precise anterior al update. También investiga cómo encontrar en qué paquete se encuentra determinado archivo desde el sitio de Ubuntu packages. Por ejemplo escribiendo "libglut" en el segundo campo en Ubuntu Packages, habiendo marcado las tercera opción:
http://packages.ubuntu.com/search?searchon=contents&keywords=libglut&mod...
http://packages.ubuntu.com/search?searchon=contents&keywords=libglut&mod...

Intenta señalar en codeblocks la dirección de la ruta que a ti te da dpkg (puede ser distinta a la mía si utilizas sistema de 32bits). Todo siempre y cuando yo haya supuesto bien que se trata de ese paquete.
Saludos.

Perdón por las normas que no respeté pero soy nuevo en esto de pedir ayuda en los foros.

Pues hice lo que me dijeron y aquí están los resultados.

Este es el error que me manda el Codeblocks:
error glut en codeblocks

y esto es lo que me salio con la consulta a dpkg:

/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libglut.so.3.9.0
/usr/share
/usr/share/doc
/usr/share/doc/freeglut3
/usr/share/doc/freeglut3/changelog.Debian.gz
/usr/share/doc/freeglut3/copyright
/usr/lib/x86_64-linux-gnu/libglut.so.3

como pueden ver la ruta esta bien, pero el codeblock dice que no encuentra las librerías.

También he notado que no solo a mi me esta pasando este problema ya que a mis compañeros de escuela que tienen el codeblocks bajo ubuntu y que hicieron alguna actualización del sistema (de esas que se hacen cuando el sistema te avisa que encontró actualizaciones) también tienen el mismo problema con el codeblock y las librerías glut.

Espero que se pueda solucionar este problema porque a pesar de que puedo compilar con éxito desde la Terminal, pues siempre es mas como utilizar algún IDE que te facilite las cosas.

Gracias por sus respuestas, si tienen alguna solución soy todo... ¿ojos?

Darte solución pues no. Para ello tendría que aparecer alguien con el mismo problema y que lo haya solucionado. No es mi caso.
Veo que sigues escribiendo la misma ruta de siempre: /usr. ¿Has viso bien la diferencia en los dos enlaces que había puesto, de las diferentes rutas en los distintos paquetes?
Supongamos que el programa al indicarle /usr, sabe buscar en /usr/lib porque así le ha instruido el programador ya que allí se ubican las librerías, y por lo tanto no es necesario indicarle la ruta completa. En la nueva versión los archivos “libglut.so.3”, “libglut.so.3.9.0” ya no se encuentra en /usr/lib (por favor, nota la diferencia en los dos enlaces que he puesto, y sobre todo en el resultado que te ha dado a ti dpkg -L).
Escribe esa nueva ruta (que lo dejo para que tu la deduzcas) en lugar de solo /usr.
Luego comenta si has deducido cuál es la ruta, y si funciona. Si obtienes nuevos mensajes de error o similares, no pongas capturas de pantallas porque sino los buscadores no indexarán ese texto. Copia el texto y pegalo aquí en el foro.

Otra posible solución sería los “enlaces simbólicos”. Si estás estudiando programación te recomiendo que comiences a leer sobre ellos.

israhel_g escribió:

hicieron alguna actualización del sistema (de esas que se hacen cuando el sistema te avisa que encontró actualizaciones) también tienen el mismo problema con el codeblock y las librerías glut.

Pues hombre, es lo que ya te había comentado e incluso había puesto los enlaces con las diferencias en los paquetes de antes y después de esa actualización.

PD: Recuerda que yo no tengo idea sobre esos programas, así que solo estoy suponiendo de que ese es el paquete que instala las librerías del Glut que está buscando Codeblocks. Quizás también debas tener instalado el paquete "freeglut3-dev" y algún otro.

De todas formas este cambio que han hecho en Ubuntu amerita un reporte en Launchpad (seguramente ya ha sido reportado), porque ellos no pueden cambiar las cosas así porque si sin siquiera haber hecho enlaces simbólicos.

Una posible solución simple sería desactualizar los paquetes de glut a la versión anterior en precise, y luego "bloquear la versión" de esos paquetes para que no vuelvan a actualizarse al hacer un "upgrade". Si buscas sobre como hacer eso en Ubuntu/Debian, hay mucha información.
Igualmente, sugiero esto como último recurso.

La verdad es que no se como Ubuntu habrá organizado el tema de la múltiple arquitectura. De alguna forma deben indicar a los programas que busquen las librerías en las nuevas rutas.

Pues por fin pude solucionarlo. Como dijo @YAFU las librerías ya no estaban en el directorio lib sino que estaban un nivel mas adentro, el problema era que si en el codeblocks le ponía esa ruta no encontraba el directorio include.

Bueno existen 2 soluciones, ambas muy sencillas. La primera es copiar o cortar los siguientes archivos que se encuentran dentro de la ruta /usr/lib/x86_64-linux-gnu/

libglut.a
libglut.so
libglut.so.3
libglut.so.3.9.0

a la ruta /usr/lib/

Y la otra forma y la que mas recomiendo es, como también dijo @YAFU, crear enlaces simbólicos de los archivos originales en el directorio /usr/lib/

A mi me soluciono el problema con el glut pero me generó otro error que también es fácil solucionar. Al compilar en el codeblocks aparece un error que dice que no se encuentra la librería libXxf86vm, bueno esto se soluciona instalando dicha librería desde el gestor de paquetes de muon y creando los enlaces simbólicos como con el glut. Las rutas son las mismas.

libXxf86vm.a
libXxf86vm.so
libXxf86vm.so.1
libXxf86vm.so.1.0.0

Espero que esta solución ayude a todos aquellos que como yo tuvieron el mismo problema.

Gracias a todos y saludos. smile

Si, en estos casos los enlaces simbólicos son la mejor opción.
Decir que esa ruta es porque tu tienes un sistema de 64 bits instalado. En sistemas de 32 bits (como indica el enlace de Ubuntu package) la ruta sería "/usr/lib/i386-linux-gnu".
Respecto al directorio include, allí se alojan archivos de los paquetes para desarrollo, los que tienen el sufijo "dev" (development). Así que es de suponer que ese error estaba referido al paquete "freeglut3-dev" y los cambios que allí también sucedieron con la actualización.

Gracias por compartir la solución.

Saludos.