用libvorbis静态编译SDL2_Mixer

时间:2018-06-19 21:12:41

标签: sdl sdl-2 vorbis ubuntu-touch

我一直在尝试使用OGG支持来构建SDL2_Mixer,尽管libvorbis和libogg库是其来源的一部分:https://hg.libsdl.org/SDL_mixer/file/7e59d684b070/external似乎并没有在编译时增加对ogg的支持。

有趣的是,如果我将这些标志提供给SDL2_Mixer configure:--enable-music-ogg=true --enable-music-ogg-shared=false。 我没有收到任何错误,但缺少支持。如果我忽略上述所有内容,请保留:--disable-shared --enable-static 我从配置中收到以下错误:

checking vorbis/vorbisfile.h usability... no
checking vorbis/vorbisfile.h presence... no
checking for vorbis/vorbisfile.h... no
checking for ov_open_callbacks in -lvorbisfile -lvorbis -logg -lm... no
configure: WARNING: *** Unable to find Ogg Vorbis library (http://www.xiph.org/)
configure: WARNING: Ogg Vorbis support disabled

但是对我来说,这没有多大意义,因为SDL2_Mixer自带了这些库:(。

我可能会经过一些路径或任何错误之处,但我不知道该怎么办。

这是我用来编译项目的CMakeLists.txt

我也遇到了这个问题: http://forums.libsdl.org/viewtopic.php?p=20698 尽管使用的是旧版SDL_Mixer,这听起来与我的问题很接近。

我也碰到过这个线程:https://swarminglogic.com/article/2014_11_crosscompile2,如果无论如何它们都是SDL2_Mixer的一部分,他分别下载ogg和vorbis源感到很奇怪。无论如何,我也尝试过单独构建这些库,但也无法使SDL2_Mixer看到它们。

我将非常感谢您提供有关如何解决此问题的任何提示,因为我似乎在这一点上已经停留了很长时间。

非常感谢:)

1 个答案:

答案 0 :(得分:0)

好吧,因此,尽管SDL2_Mixer附带了ogg和vorbis库,但是即使将其设置为static,它也不会使用它们进行编译。

我本人无法强制使用这些库,但是SDL2演示的这个新分支为项目添加了ogg和vorbis库:https://gitlab.com/zub2/SDLDemo/tree/addOggVorbis

CmakeLists.txt中的此评论很好地总结了正在发生的事情:

  

“ SDL2_mixer需要找到libogg和libvorbis,并且没有使用pkg-config”

不幸的是,必须使用CFLAGS等。