OGRE, Gentoo y /etc/env.d

Buenas,


Estoy probando OGRE en mi Gentoo x86_64

He bajado los fuentes estables (la 1.4.5) y compilado a la mano haciendo lo tipico, todo va bien.

Pruebo a compilar el sampleapp ese basico con KDevelop, siguiendo el manual del wiki. Compila bien.

El problema es a la hora de ejecutar. Ya me olia lo peor al ver que
ldd sampleapp

libOIS-1.0.0.so => /usr/lib/libOIS-1.0.0.so (0x00002b1d3f81f000)
Plugin_BSPSceneManager.so => not found
Plugin_CgProgramManager.so => not found
Plugin_OctreeSceneManager.so => not found
Plugin_ParticleFX.so => not found
RenderSystem_GL.so => not found
.........

Sobra decir que esos archivos existen, estan en un directorio no estandar /usr/local/lib64/OGRE (y no son enlaces ni nada de eso).

Total que me digo, si defino la variable LD_LIBRARY_PATH funcionara, lo pruebo y funciona efectivamente, pero menudo coñazo andar poniendo la variable todo el rato.

Total que me digo, vale ya se cual es el problema, poniendo esa ruta en /etc/ld.so.conf y ejecutando ldconfig y luego source /etc/profile deberia ir porque me miraria en ese directorio las librerias compartidas. Bueno pues eso no funciona. Ni siquiera veo los ficheros en ld.so.cache

Miro un poco mas y veo que Gentoo tiene una forma especial de generar su fichero ld.so.conf que es mirando los ficheros de /etc/env.d, asi que me creo 99ogre y pongo
LDPATH="/usr/local/lib64/OGRE"

Hago un env-update y luego un source /etc/profile y sigue sin funcionar!

Que estoy haciendo mal? Porque no me pilla las librerias estas?
¿ Qué dices que contiene '/etc/ld.so.conf' ?

- ferdy
# ld.so.conf autogenerated by env-update; make all changes to
# contents of /etc/env.d directory
/usr/local/lib
//usr/lib32/opengl/nvidia/lib
//usr/lib64/opengl/nvidia/lib
/lib
/usr/lib
/lib64
/usr/lib64
/usr/local/lib64
/lib32
/usr/lib32
/usr/local/lib32
/usr/x86_64-pc-linux-gnu/lib
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/32
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/32
/usr/lib64/nspr
/usr/lib64/nss
/usr/lib/lesstif-2.1
/usr/lib32/openmotif-2.2
/opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/
/opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/native_threads/
/opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/classic/
/opt/blackdown-jdk-1.4.2.03/jre/lib/amd64/server/
/usr/lib/qt4
/usr/lib64/qt4
/usr/lib32/qt4
/usr/kde/3.5/lib
/usr/kde/3.5/lib64
/usr/kde/3.5/lib32
/usr/qt/3/lib
/usr/qt/3/lib64
/usr/qt/3/lib32
/usr/lib/oracle/10.2.0.3/client/lib
/usr/games/lib
/usr/games/lib32
/usr/lib64/fltk-1.1
/usr/lib64/libstdc++-v3/
/usr/local/lib64/OGRE


El ultimo directorio es donde estan mis bibliotecas
¿Ejecutaste 'ldconfig -v'?

- ferdy
Si, lo ejecuté y entraba al directorio a mirar pero no sacaba ninguna biblioteca de ahi.

Es decir dice

.......
/usr/lib64/fltk-1.1:
libfltk.so.1.1 -> libfltk.so.1.1
libfltk_images.so.1.1 -> libfltk_images.so.1.1
libfltk_gl.so.1.1 -> libfltk_gl.so.1.1
libfltk_forms.so.1.1 -> libfltk_forms.so.1.1
/usr/lib64/libstdc++-v3:
libstdc++.so.5 -> libstdc++.so.5.0.6
/usr/local/lib64/OGRE:
$

Tambien he hecho file sobre los ficheros

$ file /usr/local/lib64/OGRE/Plugin_BSPSceneManager.la
/usr/local/lib64/OGRE/Plugin_BSPSceneManager.la: libtool library file
$ file /usr/local/lib64/OGRE/Plugin_BSPSceneManager.so
/usr/local/lib64/OGRE/Plugin_BSPSceneManager.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), not stripped


No entiendo nada [mamaaaaa]
4 respuestas