Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - Raziel

#1
Wola.

Estoy metiéndome en el mundillo de la programación de videojuegos con un pequeño proyecto en SDL bajo Linux, y como soy un poco cabestro y quiero que el juego sea multiplataforma, estoy intentando hacer compilación cruzada (para windows) con xmingw.

Como uso Gentoo, instalé estos paquetes:
- dev-util/xmingw-binutils
- dev-util/xmingw-gcc
- dev-util/xmingw-runtime
- dev-util/xmingw-w32api

[ROLLO]

Después, instalé las librerías de SDL para win32, con este script:
- http://www.icculus.org/~dolson/sdl/sdl-cross-install.sh.txt
Que ejecuté como root y me instaló SDL, SDL_image, SDL_mixer, SDL_net y SDL_ttf en /opt/SDL-1.2.9

En mi programa, también uso SDL_gfx, así que me bajé el código (SDL_gfx-2.0.13.tar.gz), y lo compilé como malamente supongo que se debería compilar xD:

cross-configure.sh:
#!/bin/sh

CONFIG_SHELL=/bin/sh
export CONFIG_SHELL

PREFIX=/opt/SDL-1.2.9
TARGET=i386-mingw32msvc
PATH="$PREFIX/bin:/opt/xmingw/bin:$PATH"
export PATH

SDL_CONFIG="$PREFIX/bin/$TARGET-sdl-config"
export SDL_CONFIG

cache=cross-config.cache

sh configure --cache-file="$cache" \
  --target=$TARGET --host=$TARGET --build=i386-linux --prefix=/opt/SDL-1.2.9\
  $*

status=$?
rm -f "$cache"

exit $status


cross-make.sh:
#!/bin/sh

PREFIX=/opt/SDL-1.2.9
TARGET=i386-mingw32msvc
PATH="$PREFIX/bin:/opt/xmingw/bin:$PATH"
export PATH
exec make $*


Y con un make install lo instalé en /opt/SDL-1.2.9 (esto me copió los .h pertinentes, libSDL_gfx.la y libSDL_gfx.a)

*sigh*

Ahora intenté compilar mi juego, que estoy desarollando en kdevelop.

Y llegan los problemas (qué decepción su funcionase a la primera, oiga).

Cualquier intento de compilar con kdevelop desemboca en un

configure: error: C++ compiler cannot create executables" cuando hago el configure.

Si me voy a la raíz del proyecto y ejecuto los scripts de antes (cross-configure y cross-make), el configure no me da ningún problema, pero el make ahora mismo me dice que

/opt/xmingw/lib/gcc/i386-mingw32msvc/3.4.4/../../../../i386-mingw32msvc/bin/ld: cannot find -lSDL

No sé qué habré cambiado en la configuración del proyecto (y al volver a usar autoconf y automake), porque antes me decía que no podía encontrar -lpthread, que ahora diga que no a -lSDL no sé si es bueno o malo xDD

*En fin* si me voy a la carpeta de sources y simplemente intento hacer un
i386-mingw32msvc-g++ *.cpp *.h `/opt/SDL-1.2.9/bin/i386-mingw32msvc-sdl-config --libs --cflags` -lSDL_mixer -lSDL_image -lSDL_ttf -lSDL_gfx

[/ROLLO]

No me pone ninguna pega al compilar (*esperanza*) pero! (*depresión*) al linkar me escupe

collect2: ld terminated with signal 11 [Segmentation fault]
/tmp/cclrKPyx.o:CFramerate.cpp:(.text+0x21): undefined reference to `__imp__SDL_initFramerate'
/tmp/cclrKPyx.o:CFramerate.cpp:(.text+0xd3): undefined reference to `__imp__SDL_initFramerate'
/tmp/ccaZGCut.o:CGame.cpp:(.text$_ZN9Framerate6setFPSEi[Framerate::setFPS(int)]+0x16): undefined reference to `__imp__SDL_setFramerate'
/tmp/ccaZGCut.o:CGame.cpp:(.text$_ZN9Framerate5delayEv[Framerate::delay()]+0xf): undefined reference to `__imp__SDL_framerateDelay'


Que me suena a librería mal instalada.


En fin, antes de seguir dando palos de ciego, álguien tiene experiencia haciendo este tipo de cosas y me puede comentar qué puedo estar haciendo mal? xD





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.