Скомпилируйте SDL2_Mixer статически с libvorbis
Я пытался собрать SDL2_Mixer с поддержкой OGG, но хотя библиотеки 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 и мне кажется странным, что он загружает источники ogg и vorbis отдельно, если они все равно являются частью SDL2_Mixer. В любом случае я тоже пытался создавать библиотеки отдельно, но не смог заставить SDL2_Mixer их увидеть.
Я был бы очень признателен за любые подсказки о том, как решить эту проблему, так как я, кажется, застрял в этой точке на некоторое время.
Большое спасибо:)
1 ответ
Итак, похоже, хотя SDL2_Mixer поставляется с библиотеками ogg и vorbis, он просто не использует их для компиляции, даже если установлен статический.
Я сам не смог заставить эти библиотеки войти, но есть новая ветка демонстрации SDL2, которая добавляет библиотеки ogg и vorbis в проект: https://gitlab.com/zub2/SDLDemo/tree/addOggVorbis
Этот комментарий в CmakeLists.txt - хорошее резюме того, что происходит:
"SDL2_mixer нужно найти libogg и libvorbis, и он не использует pkg-config"
поэтому, к сожалению, должны использоваться CFLAGS.