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

Mensajes - Raziel

#1
Eso en teoría ya va en el "/opt/SDL-1.2.9/bin/i386-mingw32msvc-sdl-config --libs" (el resultado es "-L/opt/SDL-1.2.9/lib -lmingw32 -lSDLmain -lSDL -mwindows"), el problema ahora mismo creo que es que está mál instalado SDL-gfx...
#2
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