Tengo desde hace un tiempo una maqueta de radiocontrol, un Multiplex Easy Start, que he intentado volar un par de veces, con resultado de diversos choques, ya que no conocía a nadie que me pudiese enseñar a volarlo. Buscando información por los foros de aficionados a los aviones de radiocontrol, vi que había algunos simuladores que permitían aprender poco a poco el manejo de un avión de este tipo. Muchas emisoras tienen una salida que le permite mandar información a un ordenador a través de una interfaz USB o serie y de esta manera controlar el simulador. La emisora que tiene el kit que me compré no tenía demasiada información sobre la posibilidad de conectar la emisora al ordenador, así que me hice con un simulador de vuelo, que realmente tiene una versión del FMS, que además tiene el modelo de avión que yo tengo.
Mi primera opción fue utilizar bajo Wine el simulador FMS. Tras varias pruebas infructuosas compilando Wine (en Snow Leopard no es evidente como hacerlo), lo probé, funcionaba correctamente la instalación, pero la simulación acababa con un error de acceso en memoria.
Tras buscar algo más de información, encontré un simulador opensource, crrcsim, que podía compilarse bajo MacOS X. Pensando que la cosa iba a ser el clasico ./configure;make;make install, me puse a compilarlo, y es donde empiezan los problemas.
Para empezar, crrcsim depende de dos librerías, SDL (Simple Media Layer) y plib (Portable Games Library). Me baje el código fuente y empecé a compilarlas:
SDL
Las SDL se compilan limpiamente con la siguiente secuencia de comandos:
env CFLAGS="-arch i386 -arch x86_64" CXXFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" ./configure --prefix=/usr/local
make
(como un usuario administrador)
make install
Esta secuencia de comandos nos va a compilar la versión de 32 y 64 bits de las librerías.
PLIB
El problema de las PLIB es que usa bajo MacOS X el API de Carbon Sound Manager, que no está soportado en Snow Leopard para compilar programas bajo 64 bits. Por tanto esta librería la vamos compilar con una versión de 32 bits, y todo el simulador lo vamos a tener que compilar en 32 bits. Para ello:
env CFLAGS="-arch i386" CXXFLAGS="-arch i386" LDFLAGS="-arch i386" ./configure --prefix=/usr/local
make
El problema, es que al menos en la versión 1.8.5 de la librería, no compilará correctamente el fichero src/ssg/ssgLoadFLT.cxx. La solución a este error es muy sencilla, editar el fichero y añadir al principio una línea que esa #include <sys/types.h>. Con esta modificación volvemos a teclear make y debe de compilar sin problemas. Por último, con un make install, debe instalar los ficheros de cabecera y las librerías de desarrollo bajo los directorios de /usr/local
Compilar crrcsim
Una vez que tenemos las librerías instaladas, es necesario compilar el simulador. Tras varias pruebas, hay que realizar la configuración con la siguiente línea de comandos:
env CFLAGS="-arch i386" CXXFLAGS="-arch i386 -framework OpenGL" LDFLAGS="-arch i386 -L/usr/X11/lib -lGLU -lGL" ./configure --prefix=/usr/local
make
make install
Básicamente le decimos al compilador que queremos un binario de 32 bits y que use el framework OpenGL, para evitar ciertos errores de linkado. Aparte, también le pasamos de manera explícita donde están parte de las librerías de OpenGL en MacOS X
Desde el directorio donde están las fuentes, podremos ejecutar el simulador de vuelo con crrcsim :). Dejo para otro post como debemos de configurarlo.
No hay comentarios:
Publicar un comentario