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.
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
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.
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
porque eso no alcanza... tenes que hacer un ldconf luego de eso.
Aaah! y cómo hago eso?...
no le se mucho a esto, saluuud!
desde una terminal linux, y como usuario root corres ldconfig
ya abri consola, y puse idconfig pero me dice orden no encontrada :S
Para la librería que falle, haz:
ldd /usr/lib/bennugd/bennu3d.so
(o donde sea que esté la librería que falla).
Me dice que no existe el fichero o directorio. Tengo que colocarme en consola en un lugar especifico???
pero yo no escribi idconfig... yo escribi ldconfig... letra L en minusculas
:( 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.
Bennu3d aún no está empaquetada, pero chipmunk está en mi PPA y a la gente creo que le va bien...
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.
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.
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?
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.
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!
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
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.
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
la variable dice PATH... yo dije "path"... despiste total... :)
va asi
LD_LIBRARY_PATH=/usr/lib/bennugd/
bgdi 111AAAGirar2d.dcb
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?
ya no se, pregunta al autor de la bennu3d.
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 :)
las librerias no se pueden poner en mochila.
en cada sistema necesita un runtime diferente.
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
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.
Eso fue lo que dijé yo...
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.