1

我一直在尝试使用 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 看到它们。

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

非常感谢 :)

4

1 回答 1

0

好的,所以看起来虽然 SDL2_Mixer 带有 ogg 和 vorbis 库,但即使设置为静态,它也不会使用它们进行编译。

我自己无法强制加入这些库,但是 SDL2 演示的这个新分支将 ogg 和 vorbis 库添加到项目中:https ://gitlab.com/zub2/SDLDemo/tree/addOggVorbis

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

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

所以不幸的是必须使用 CFLAGS 等。

于 2018-06-22T06:08:50.920 回答