SDL2 不会 运行 除非 SDL_INIT_GAMECONTROLLER 子系统被初始化 (WINDOWS 10)

SDL2 will not run unless SDL_INIT_GAMECONTROLLER subsystem is initted (WINDOWS 10)

我正在使用 windows 10 和 sdl2。必须初始化 SDL_INIT_GAMECONTROLLER 标志,否则将不会开始执行。这是来自 main 的一些代码(请参阅 gamecontroller init 调用的底部注释):

SDL_Init(SDL_INIT_VIDEO);
int imgFlags = IMG_INIT_PNG;
if(!( IMG_Init(imgFlags) & imgFlags)) {
  printf( "SDL_image could not initialize! SDL_image Error: %s\n", IMG_GetError() );
  return 0;
}

SDL_ShowCursor(SDL_DISABLE);



SDL_Window* window = NULL;
window = SDL_CreateWindow("Anica", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, W, H,
                            SDL_WINDOW_SHOWN);
SDL_Renderer* renderer = NULL;
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

SDL_InitSubSystem(SDL_INIT_AUDIO);
SDL_InitSubSystem(SDL_INIT_EVENTS);
SDL_InitSubSystem(SDL_INIT_TIMER);
// If this sub system is not initted execution stops. If it is initted
// execution works fine. It takes 2-3 seconds for this call to finish which
// is really slow.
SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER);

如果游戏控制器子系统已初始化,window 打开并挂起,直到游戏控制器初始化调用完成(2-3 秒)。然后一切正常。如果未初始化游戏控制器子系统,window 打开并无限期挂起。

我正在使用 windows 10 如果这有什么不同的话。

我的搭档在 windows 10 上使用相同的代码没有这个问题,这让我们俩都很困惑。

从 SDL 2.0.9 升级到 2.0.8 解决了我的问题。

感谢问题评论的帮助