LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 808|回复: 3

gcc4编译libsdl-1.2.8-r1出错,帮忙看下

[复制链接]
发表于 2005-5-3 12:04:32 | 显示全部楼层 |阅读模式
#emerge mplayer
至此出错


[php] i686-pc-linux-gnu-gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"SDL\" -DVERSION=\"1.2.8\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_LIBASOUND=1 -I. -I. -pipe -march=athlon-xp -mfpmath=sse -mmmx -msse -m3dnow -maccumulate-outgoing-args -minline-all-stringops -momit-leaf-frame-pointer -O3 -ffast-math -fomit-frame-pointer -fprefetch-loop-arrays -ftracer -funroll-loops -Wall -DENABLE_DUMMYVIDEO -DDISKAUD_SUPPORT -DUSE_DLOPEN -DUSE_ASMBLIT -I./hermes -I../../src/hermes -DOSS_SUPPORT -DALSA_SUPPORT -DALSA_DYNAMIC=libasound.so.2 -DUSE_DLVSYM -DARTSC_SUPPORT -DARTSC_DYNAMIC=libartsc.so.0 -I/usr/kde/3.4/include/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DESD_SUPPORT -DESD_DYNAMIC=libesd.so.0 -DENABLE_X11 -DXTHREADS -I./include -I./src/video -DXFREE86_VM -DXFREE86_VMGAMMA -DXFREE86_XV -DENABLE_DIRECTFB -DENABLE_SVGALIB -DHAVE_OPENGL -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DHAVE_SIGACTION -I../../include -I../../include/SDL -I../../src -I../../src/main/linux -I../../src/audio -I../../src/video -I../../src/video/XFree86/extensions -I../../src/events -I../../src/joystick -I../../src/cdrom -I../../src/thread -I../../src/timer -I../../src/endian -I../../src/file -I../../src/thread -c SDL_yuv_sw.c -o SDL_yuv_sw.o >/dev/null 2>&1
SDL_yuv_mmx.c: In function 'ColorRGBDitherYV12MMX1X':
SDL_yuv_mmx.c:113: error: can't find a register in class 'INDEX_REGS' while reloading 'asm'
make[3]: *** [SDL_yuv_mmx.lo] 错误 1
make[3]: *** 正在等待未完成的任务....
make[3]: Leaving directory `/var/tmp/portage/libsdl-1.2.8-r1/work/SDL-1.2.8/src/video'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/var/tmp/portage/libsdl-1.2.8-r1/work/SDL-1.2.8/src/video'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/var/tmp/portage/libsdl-1.2.8-r1/work/SDL-1.2.8/src'
make: *** [all-recursive] 错误 1

!!! ERROR: media-libs/libsdl-1.2.8-r1 failed.
!!! Function src_compile, Line 137, Exitcode 2
!!! emake failed
!!! If you need support, post the topmost build error, NOT this status message.[/php]
发表于 2005-5-9 17:19:22 | 显示全部楼层
我用gcc-3.4也碰到了上同样的问题
回复 支持 反对

使用道具 举报

发表于 2005-5-9 18:09:37 | 显示全部楼层
forums.gentoo.org.
bugs.gentoo.org
去上面找找。

ps 楼上的头像不错。。
回复 支持 反对

使用道具 举报

发表于 2005-5-10 08:47:12 | 显示全部楼层
加上下面的patch:
  1. --- SDL-1.2.8.old/src/video/SDL_yuv_mmx.c       2005-05-06 08:24:51.000000000 +0800
  2. +++ SDL-1.2.8/src/video/SDL_yuv_mmx.c   2005-05-06 08:25:05.000000000 +0800
  3. @@ -30,7 +30,7 @@

  4. #include "SDL_types.h"

  5. -#if __GNUC__ > 2
  6. +#if __GNUC__ > 2 && __GNUC__ < 4
  7. #    undef GCC2_HACK
  8. #else
  9. #    define GCC2_HACK
复制代码


注意原始文件SDL_yuv_mmx.c被libsdl-1.2.8-gcc2.patch.bz2打过补丁,对gcc2的补丁同样适用于gcc4. 所以上面附加的补丁要放在原来gcc2的补丁后面。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表