在mac上和Sdl2打交道很困难。
代码编译得很好,但在运行时Mix_init失败,出现以下错误:

OGG Support Not Available

奇怪的是,我安装了这样的sdl2 U混音器:
brew install SDL2_mixer --with-libvobis

这是初始化代码
int flags = MIX_INIT_OGG;
int initted = Mix_Init(flags);
if ((initted & flags) != flags)
{
    printf("Mix_Init: Failed to init SDL_Mixer\n");
    printf("Mix_Init: %s\n", Mix_GetError());
    MSG_EXIT("Exiting ",1);
}

最佳答案

好吧,现在任何人都会回答看起来这不是一个常见的错误。挖掘之后,SDL2 U混音器似乎在MacOs上无法正常工作。
我用的是SDL2 U混音器-1.2,没问题当然,我需要修改一点代码。
幸运的是,只需要更改初始化mixer1.2和mixer2中的所有函数都相同。
但是有一些小事情要做。
-如果安装了sdl U混合器,请将其拆下
-安装其他依赖项
-重新安装sdl_混音器
不要拆下SDL2 U混合器。
我不知道它是如何工作的,为什么我不应该删除它,我只是意识到,当我删除它时,我有其他疯狂的错误,即使我编译了wil-lsdl_混频器和not-lsdl2_混频器。
下面是brew命令

brew install sdl_mixer --with-libvorbis
brew uninstall libvorbis libogg //it may ask you de remove sdl_mixer

然后
brew install sdl sdl_image sdl_ttf portmidi hg git
brew reinstall sdl_mixer --with-libvorbis

希望它能帮助别人。

关于c - SDL2_mixer在Mac上的初始化失败(运行时),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47234172/

10-12 18:25