Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: zfour on November 07, 2011, 09:41:19 PM

Title: cómo agrego librerias?
Post by: zfour on November 07, 2011, 09:41:19 PM
me he bajao unos ejemplos de comlombiandevelopments pero al compilar me dice que no encuentra la librería, por ejemplo bennu3d.so, fire.so, y asi con los ejemplos. Cómo hago para egregar esas librerías para que funquen los ejemplos?

Soy nuevo en esto y gracias.
Title: Re: cómo agrego librerias?
Post by: FreeYourMind on November 07, 2011, 09:52:27 PM
Supongo que usas linux porque esas son de linux.

En el prg se hace en ese caso

import "fire"
import "bennu3d"

las dll las pones donde tengas bennu, o puedes usar el fichero externo 'bgdc.import' donde pones los imports
Title: Re: cómo agrego librerias?
Post by: josebita on November 07, 2011, 10:03:41 PM
Y asegúrate de que estén en un directorio donde el sistema las pueda encontrar: modifica la variable LD_LIBRARY_PATH para que apunte al directorio en el que estén las .so o copialas al mismo directorio en el que estén el resto de librerías de bennu.
Title: Re: cómo agrego librerias?
Post by: zfour on November 08, 2011, 01:18:07 AM
la copíe en la carpeta junto a las demás pero sigue diciendo lo mismo.
segun estan en usr/libs/bennugd ahí la copié pero sigue diciendo not found libreria.so
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 08, 2011, 04:58:22 AM
porque eso no alcanza... tenes que hacer un ldconf luego de eso.
Title: Re: cómo agrego librerias?
Post by: zfour on November 08, 2011, 06:11:57 PM
Aaah! y cómo hago eso?...

no le se mucho a esto, saluuud!
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 08, 2011, 09:00:03 PM
desde una terminal linux, y como usuario root corres ldconfig
Title: Re: cómo agrego librerias?
Post by: zfour on November 09, 2011, 12:57:08 AM
ya abri consola, y puse idconfig pero me dice orden no encontrada :S
Title: Re: cómo agrego librerias?
Post by: josebita on November 09, 2011, 01:02:20 AM
Para la librería que falle, haz:
ldd /usr/lib/bennugd/bennu3d.so

(o donde sea que esté la librería que falla).
Title: Re: cómo agrego librerias?
Post by: zfour on November 09, 2011, 01:10:10 AM
Me dice que no existe el fichero o directorio. Tengo que colocarme en consola en un lugar especifico???
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 09, 2011, 01:16:51 AM
pero yo no escribi idconfig... yo escribi ldconfig... letra L en minusculas
Title: Re: cómo agrego librerias?
Post by: zfour on November 09, 2011, 01:28:25 AM
:( Ya lo hice como lo dices splinter, pero nada, me sigue diciendo esto

/usr/bin/data/bennu3d.so: cannot open shared object file: No such file or direct

Estoy intentando probar los ejemplols de 3d y los de chipmunk o esa librerá de efectos físicos...y si están las librerías pero me dice eso en cualquier caso.

Title: Re: cómo agrego librerias?
Post by: josebita on November 09, 2011, 01:40:16 AM
Bennu3d aún no está empaquetada, pero chipmunk está en mi PPA y a la gente creo que le va bien...
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 09, 2011, 02:07:17 AM
tenes que crear un link simbolico de bennu3d.so a libbennu3d.so... no sirve renombrar la .so y luego tenes que correr el ldconfig.

ldconfig solo entiende lib*.so

pero... todo esto suponiendo que la libreria esta bien armada... cosa que desconozco.
Title: Re: cómo agrego librerias?
Post by: zfour on November 09, 2011, 02:07:39 AM
josebita : Me pasa o mismo, tengo tu ppa, pero dice not found :s

Splinter, pero por ejemplo en chipmunk ya estaba y me da el mismo error para compilar.
Title: Re: cómo agrego librerias?
Post by: josebita on November 09, 2011, 02:15:38 AM
Quote from: zfour on November 09, 2011, 02:07:39 AM
josebita : Me pasa o mismo, tengo tu ppa, pero dice not found :s

Splinter, pero por ejemplo en chipmunk ya estaba y me da el mismo error para compilar.
¿No tendrás la versión oficial y la del PPA instaladas a la vez, no?
Son incompatibles entre sí.

¿Has probado a hacer lo de ldd?
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 09, 2011, 02:34:39 AM
Quote from: zfour on November 09, 2011, 02:07:39 AM
josebita : Me pasa o mismo, tengo tu ppa, pero dice not found :s

Splinter, pero por ejemplo en chipmunk ya estaba y me da el mismo error para compilar.

no se como esta armada la chipmunk, si empieza con lib, y si esta preparada para que trabaje con ese nombre.

tambien en el ldconfig la podes agregar a mano, pero ahi no se como es, tendras que investigar...

el sistema ld* es una base de datos que registra todas las librerias del sistema... cuando un proceso arranca las busca ahi o en en path LD_LIBRARY_PATH, pero en el caso de la base de datos, ldconfig solo agrega a esta base de datos las que el nombre comience con lib y termine con .so... las otras las ignora, por eso te dije que agregue un link.
Title: Re: cómo agrego librerias?
Post by: zfour on November 09, 2011, 03:08:12 AM
Ya intenté lo que de ldd y me desplegó varias cosas eb lista, parecía que no me mencionó nada de algún error; pero sigue sin funcionar.

Soy muy nuevo en esto splinter :( y tampoco se hacer eso para agregarlas a "mano". Si me pudieras decir cómo hacerlo de a poco en poco te lo agradecería enormemente, así de paso aprendería a agregar las otras como .NET y bennu3d que quiero chequearlas.

Estos equipos son del cole, y acá algunos entran al foro pero no modifican nada, pcada quién tiene su usuario :p Así que por ese lado no se ha movido na de bennu ;)

Saludos y muchas gracias por la ayuda!
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 09, 2011, 06:41:23 AM
ldd no tiene nada que ver...

si cada uno tiene usuario, seguramente no tienes permiso de root para instalar...

por que no haces un script, seteas la variable

LD_LIBRARY_PATH=<path de las .so>
bgdi juego

y listo

por otro lado, aunque no necesario si usas el metodo de arriba http://linux.die.net/man/8/ldconfig
Title: Re: cómo agrego librerias?
Post by: zfour on November 09, 2011, 09:16:06 PM
Tengo el script en .sh así

LD_LIBRARY_PATH=/usr/lib/bennugd/mod_chipmunk.so
bgdi 111AAAGirar2d.dcb

Lo estoy ejecutando desde la misma carpeta donde está 111AAAGirar2d.dcb
pero se abre la consola y se cierra rápidamente sin que ocurra nada.
Title: Re: cómo agrego librerias?
Post by: FreeYourMind on November 09, 2011, 09:28:23 PM
Hahhahahaha, eso esta mal xD
Es en el prg que se agrgan los modulos, en el script .sh solo pones el path al runtime, que es la carpeta donde esta bennu y los modulos.
Mirate el .sh de los ejemplos en la distro para caanoo o wiz que con eso te sirve
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 09, 2011, 09:46:15 PM
la variable dice PATH... yo dije "path"... despiste total... :)

va asi

LD_LIBRARY_PATH=/usr/lib/bennugd/
bgdi 111AAAGirar2d.dcb
Title: Re: cómo agrego librerias?
Post by: zfour on November 09, 2011, 10:01:44 PM
XD jeje ya lo corregí, pero sigue sin funcionar.

Estoy intentando correr el ejemplo de bnnu-phisic con mod_chipmunk.

Y otra duda, si quiciera ejecutar un ejemplo que utilizara bennu3d.so, como sería?
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 09, 2011, 10:43:55 PM
ya no se, pregunta al autor de la bennu3d.
Title: Re: cómo agrego librerias?
Post by: zfour on November 10, 2011, 02:19:25 AM
Disculpa Splinter. No redacté bien mi pregunta! Me refería en general.

Supongamos que tengo un juego que utiliza esa librería; la cosa es, cómo le pongo esa librería en "mochila" para ejecutar el juego en diferentes sistemas?!

Espero haber sido un poco más claro y gracias por la ayuda :)
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 10, 2011, 03:24:25 AM
las librerias no se pueden poner en mochila.

en cada sistema necesita un runtime diferente.
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 10, 2011, 03:33:27 AM
creo que lo mas importante es saber en cada sistema como se buscan las librerias, los ejecutables y recursos.

te puede ayudar muchos investigar genericamente los siguientes items:

- variable de enviroment PATH (linux-unix/windows)
- variable de enviroment LD_LIBRARY_PATH y tambien ldconfig (ambos en linux, unix en general)
- working directory o directorio de trabajo
Title: Re: cómo agrego librerias?
Post by: Drumpi on November 10, 2011, 08:52:26 PM
O más fácil: descárgate cualquier juego hecho para GP2X, WIZ o Caanoo, y haz como si el .GPE fuese un .SH (puedes leerlo con GEdit sin problemas).
Observa el script de arranque, las rutas que marca, y dónde está cada fichero.
Title: Re: cómo agrego librerias?
Post by: FreeYourMind on November 10, 2011, 09:01:25 PM
Eso fue lo que dijé yo...
Title: Re: cómo agrego librerias?
Post by: SplinterGU on November 10, 2011, 09:11:15 PM
pero visto el caso de alguno que no quiero nombrar ( ;) ) es mejor que entienda los conceptos que limitarse a modificar algo ya hecho sin saber mucho como se comporta cada cosa o que se hace.