• 9647阅读
  • 1回复

[请教大牛]链接了sdl_mixer静态库的程序无法播放MP3格式的音频文件 [复制链接]

上一主题 下一主题
离线ch19860304
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-13
sdl_mixer是sdl中关于音频播放的扩展库,它是支持MP3格式的文件的,我基于sdl_mixer写了个程序,将它与动态sdl_mixe、sdl库链接后,是可以支持MP3格式文件的播放的。
    我把sdl_mixer和sdl这两个库编译成静态的后。在/usr/local/lib目录下有这两个软件包的静态库。
# ls
directfb-1.0-0 libdirect.a libdirect.la libfusion.a libiconv.la libSDL_image.la libSDL_mixer.a   preloadable_libiconv.so libcharset.a libdirectfb.a libfreetype.a libfusion.la libSDL.a        libSDL.la libSDL_mixer.la libcharset.la libdirectfb.la libfreetype.la libiconv.a    libSDL_image.a  libSDLmain.a  pkgconfig
然后再编译我的程序,将它与静态sdl_mixe、sdl库链接后,这样编译出来的可执行文件大概有2MB多吧。此时,它居然就不支持MP3格式的文件了,这是怎么回事呀?有人知道吗?
离线ch19860304
只看该作者 1楼 发表于: 2009-08-13
有了一点线索,在sdl官方网站: http://www.libsdl.org/projects/SDL_mixer/上有这么一句话“As of SDL_mixer 1.2.7, Ogg Vorbis and MP3 loading libraries are dynamically loaded, so if you don't need to load those formats, you don't need to include those shared libraries.”
不过我下的是“SDL_mixer-1.2.8.tar.gz”,解压了这个包后,静态编译时configure配置如下:./configure --prefix=/usr/local --enable-shared=no --enable-static=yes,之后就是:make clean && make && make install。
    有什么办法把MP3的库文件静态地编译进来吗?MP3的库文件又具体是什么呢?


多给大家一些信息,希望得到提点
快速回复
限100 字节
 
上一个 下一个