Minitutorial de configuración de bennugd linux

Started by alex, October 29, 2012, 09:55:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

alex

Creo este post para los que quieran aprender sobre como linux averigua donde buscar las librerias, para que cualquiera que no sepa pregunte y para tener un sitio ordenado donde se puedan recurrir a buscar librerias o codigo fuente sobre ella (y posibles errores de compilaión) (en vez de ir navegando por el foro).

1) Linux busca las librerias (dinamicas) en:
- la variable: LD_LIBRARY_PATH  se modifica asi: se abre la terminal y se escribe:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/direc/tor/io/nombrelibreria.so
- En el fichero /etc/ld.so.cache  que es el generado por /sbin/ldconfig y /sbin/ldconfig.real que toman de referencia el archivo /etc/ld.so.conf que toma de referencia los archivos (acabados en .conf) de la carpeta /etc/ld.so.conf.d. Bennugd ya tiene su directorio de las libs definido en un archivo /etc/ld.so.conf.d/bennugd.conf. Es decir que si queremos añadir libs a Bennugd solo habria que meter las carpetas en el subdirectorio lib (junto con las demas libs y modules) y actualizar el ld.so.cache: terminal "sudo ldconfig" o si no os va bien "sudo config.real".

Nota: Intentare tener actualizado la informacion de este mensaje intentando responder todas las dudas aqui, tambien intentare tener actualizado los contenidos descargables como librerias u otros archivos.

panreyes

Igual me equivoco, pero, ¿es absolutamente necesario hacer un script para añadir la ruta de los .so antes de ejecutar el juego? ¿No puede intentar cargar las librerías desde la ruta del ejecutable primero?

alex

no te entendi bien... script si no estan las librerias administradas en el sistema... yo cuando añadi la bennu3d corri como root ldconfig para actualizar las librerias que busca el sistema

panreyes

#3
Hablo de poder ejecutar el bgdi renombrado directamente y que sea capaz de localizar las librerías si están en su mismo directorio o en uno cercano.


Sé que la limitación está en dlopen y en la forma en la que funciona, pero ¿no sería posible que el BGDI estableciera $LD_LIBRARY_PATH en su mismo directorio, o bgd-runtime, o libs, en caso de no cargar las librería a la primera?


---------


Me autocorrijo, no era tan complicado:

QuoteIf filename contains a slash ("/"), then it is interpreted as a
       (relative or absolute) pathname.
http://www.kernel.org/doc/man-pages/online/pages/man3/dlopen.3.html

SplinterGU

Quote from: PiXeL on December 23, 2012, 12:51:06 PM
Igual me equivoco, pero, ¿es absolutamente necesario hacer un script para añadir la ruta de los .so antes de ejecutar el juego? ¿No puede intentar cargar las librerías desde la ruta del ejecutable primero?

solo con las libererias de bennugd, las que se enlazan a traves del sistema (sdl, mixer, png, etc) necesitan estar en el path del sistema para librerias dinamicas.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: PiXeL on December 27, 2012, 09:51:05 PM
Sé que la limitación está en dlopen y en la forma en la que funciona, pero ¿no sería posible que el BGDI estableciera $LD_LIBRARY_PATH en su mismo directorio, o bgd-runtime, o libs, en caso de no cargar las librería a la primera?

no crees que no lo intente? la unica opcion seria cargar las librerias desde codigo y no enlazarlas directamente desde el compilador... pero quedan las dependencias de las externas sin poder resolver ese problema...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes

Me imaginaba que sí, pero bueno, por preguntar que no quede :)