Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: alex on October 29, 2012, 09:55:08 PM

Title: Minitutorial de configuración de bennugd linux
Post by: alex on October 29, 2012, 09:55:08 PM
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.
Title: Re:Minitutorial de configuración de bennugd linux
Post by: panreyes 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?
Title: Re:Minitutorial de configuración de bennugd linux
Post by: alex on December 27, 2012, 09:32:18 PM
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
Title: Re:Minitutorial de configuración de bennugd linux
Post by: panreyes on December 27, 2012, 09:51:05 PM
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
Title: Re:Minitutorial de configuración de bennugd linux
Post by: SplinterGU on December 27, 2012, 10:25:32 PM
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.
Title: Re:Minitutorial de configuración de bennugd linux
Post by: SplinterGU on December 27, 2012, 10:29:15 PM
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...
Title: Re:Minitutorial de configuración de bennugd linux
Post by: panreyes on December 27, 2012, 10:40:09 PM
Me imaginaba que sí, pero bueno, por preguntar que no quede :)