红联Linux门户
Linux帮助

sdl_mixer用不上smpeg的库!!!!!

发布时间:2009-08-21 15:40:57来源:红联作者:ch19860304
我从网上下载了smpeg-0.4.4.tar.gz,通过它安装了smpeg库。其相关目录如下:

/usr/local/lib # ls
directfb-1.0-0 libdirect.la libiconv.la libSDL.la libSDL_mixer.so libsmpeg.so
libcharset.a libfreetype.a libSDL-1.2.so.0 libSDLmain.a libSDL.so libsmpeg.so.0
libcharset.la libfreetype.la libSDL-1.2.so.0.11.2 libSDL_mixer-1.2.so.0 libsmpeg-0.4.so.0 pkgconfig
libdirect.a libfusion.a libSDL.a libSDL_mixer-1.2.so.0.2.6 libsmpeg-0.4.so.0.1.3 preloadable_libiconv.so
libdirectfb.a libfusion.la libSDL_image.a libSDL_mixer.a libsmpeg.a
libdirectfb.la libiconv.a libSDL_image.la libSDL_mixer.la libsmpeg.la

/usr/local/bin # ls
directfb-config freetype-config glmovie iconv plaympeg sdl-config smpeg-config

然后我又下载了SDL_mixer-1.2.8.tar.tar,想通过它安装sdl_mixer库。结果./configure时提示我以下信息:
#./configure --prefix=/usr/local --enable-static=yes --with-smpeg-prefix=/usr/local --with-smpeg-exec-prefix=/usr/local
checking for smpeg-config... /usr/local/bin/smpeg-config
checking for SMPEG - version >= 0.4.3... no
*** Could not run SMPEG test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means SMPEG was incorrectly installed
*** or that you have moved SMPEG since it was installed. In the latter case, you
*** may want to edit the smpeg-config script: /usr/local/bin/smpeg-config

打开config.log,发现:
configure:20257: checking for smpeg-config
configure:20288: result: /usr/local/bin/smpeg-config
configure:20296: checking for SMPEG - version >= 0.4.3
configure:20386: gcc -o conftest -D_GNU_SOURCE=1 -I/usr/local/include -I/usr/local/include/smpeg -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -D_GNU_SOURCE=1 conftest.c -L/usr/local/lib -lsmpeg -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL -lpthread >&5
/usr/local/lib/libsmpeg.so: undefined reference to `operator new[](unsigned int)'
/usr/local/lib/libsmpeg.so: undefined reference to `operator delete(void*)'
/usr/local/lib/libsmpeg.so: undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libsmpeg.so: undefined reference to `operator delete[](void*)'
/usr/local/lib/libsmpeg.so: undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status
configure:20389: $? = 1
configure: program exited with status 1

为什么sdl_mixer用不上smpeg的库文件呀???呼唤大牛!!!
文章评论

共有 5 条评论

  1. 1977643034 于 2013-06-10 02:13:15发表:

    谢谢楼主分享。。。。

  2. 于 2013-06-02 10:05:40发表:

    你好,我的smpeg怎么安装不成功啊,你能告诉我方法我,
    安装的错误提示是:
    MPEGaudio.cpp: In member function 'bool MPEGaudio::WantedSpec(SDL_AudioSpec*)':
    MPEGaudio.cpp:107: error: 'Play_MPEGaudioSDL' was not declared in this scope
    MPEGaudio.cpp: In member function 'void MPEGaudio::StartDecoding()':
    MPEGaudio.cpp:156: error: 'Decode_MPEGaudio' was not declared in this scope
    make[1]: *** [MPEGaudio.lo] 错误 1
    make[1]: Leaving directory `/usr/22/smpeg-0.4.4/audio'
    make: *** [all-recursive] 错误 1
    [root@localhost smpeg-0.4.4]#
    求解决啊

  3. ch19860304 于 2009-08-25 07:51:41发表:

    没人知道吗?

  4. ch19860304 于 2009-08-23 23:19:59发表:

    你的意思是说:SDL_mixer在“configure”时用了gcc,所以不对?
    我的理解对吗?
    那这个怎么解决呢?

  5. tianyuan008 于 2009-08-21 17:42:37发表:

    这个 smpeg 是 c++ 写的