Solucionar "make: *** [SDL_imageFilter.lo] Error 1" al compilar SDL_gfx
July 13th, 2008 by BusindreLa biblioteca SDL_gfx incorpora funciones para dibujar primitivas gráficas y otras funciones gráficas de apoyo, está escrita en C y puede también ser usada con código en C++. Es un complemento para la biblioteca SDL (Simple DirectMedia Layer) y se usa en muchos juegos, wormux, xmoto,.. Es la evolución de dos anteriores APIs ya obsoletas, SDL_gfxPrimitives encargada de proveer funciones para dibujar líneas, círculos y polígonos y el API SDL_rotozoom, con funciones para rotar y escalar (rotozoomer) superficies de SDL.
Los componentes de SDL_gfx son:
* Primitivas Gráficas (SDL_gfxPrimitves.h)
* Rotozoomer (SDL_rotozoom.h)
* Control de Framerate (SDL_rotozoom.h)
* Filtros de imagen MMX (SDL_imageFilter.h)
* Funciones de Blit personalizadas (SDL_gfxBlitFunc.h)
Problema al compilar (make):
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"SDL_gfx\ " -DVERSION=\"2.0.17\" -DBUILD_DLL -I. -march=pentium4 -O3 -pipe -fomit-frame-pointer -DUSE_MMX -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REE NTRANT -MT SDL_imageFilter.lo -MD -MP -MF .deps/SDL_imageFilter.Tpo -c SDL_imageFilter.c -fPIC -DPIC -o .libs/SDL_imageFilter.lo
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"SDL_gfx\ " -DVERSION=\"2.0.17\" -DBUILD_DLL -I. -march=pentium4 -O3 -pipe -fomit-frame-pointer -DUSE_MMX -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REE NTRANT -MT SDL_imageFilter.lo -MD -MP -MF .deps/SDL_imageFilter.Tpo -c SDL_imageFilter.c -o SDL_imageFilter.o >/dev/null 2>&1
make: *** [SDL_imageFilter.lo] Error 1
NOTA: Según esta salida de error, el problema parece ser algo relacionado con MMX (MultiMedia eXtensions). Para e que no lo sepa, las instrucciones SIMD MMX son capaces de ser usadas con ciertos procesadores (Pentium MMX) y se encargan de aumentar la velocidad de operaciones gráficas.
Solución:
Opciones que muestra el configure sobre MMX:
$ ./configure --help | grep -i mmx
--enable-mmx use mmx assembly on x86 default=yes, disable this on non-x86 platforms
Nos fiamos en que por defecto está activada la opción --enable-mmx, para evitar el error en la compilación debemos desactivarla, no nos indica dicha opción el configure, pero debemos suponer que es: --disable-mmx
Compilar de la siguiente manera resuelve el error del make:
$ make clean
$ ./configure --prefix=/usr --disable-mmx
$ make
# make install ó checkinstall
Posted in Juegos |