Haskell 在GHCI内创建SDL2窗口
我一直在使用SDL2绑定。尽管我可以执行编译后的程序,但无论我如何尝试,都无法从GHCi打开窗口。我已经尝试了存储库中的示例,但它们都有相同的问题。我一直收到的错误消息是:Haskell 在GHCI内创建SDL2窗口,haskell,sdl-2,ghci,Haskell,Sdl 2,Ghci,我一直在使用SDL2绑定。尽管我可以执行编译后的程序,但无论我如何尝试,都无法从GHCi打开窗口。我已经尝试了存储库中的示例,但它们都有相同的问题。我一直收到的错误消息是: *** Exception: SDLCallFailed {sdlExceptionCaller = "SDL.Video.getWindowSurface", sdlFunction = "SDL_GetWindowSurface", sdlExceptionError = "Invalid window"} 如果有什么
*** Exception: SDLCallFailed {sdlExceptionCaller = "SDL.Video.getWindowSurface", sdlFunction = "SDL_GetWindowSurface", sdlExceptionError = "Invalid window"}
如果有什么关系,我在macOS上。我也不一定与这个库结过婚,如果有一种方法可以使用不同的库从GHCi创建窗口,我会感兴趣。我使用的是stack,这解决了我的问题:
stack ghci --ghci-options '-fno-ghci-sandbox'
我不太清楚为什么会这样,但我有一种预感,它与ghci生成线程有关,SDL2希望主线程中有一个窗口。如果有人对这些东西有更好的了解,我会非常感兴趣。您使用的是Nix吗?我很久以前就使用过sdl haskell绑定。我确实记得ghci与他们相处得并不轻松。我还记得一些关于
-线程化option@JosephSible-莫妮卡,我用的是stack no-nix,很好的提示。您是否找到了在应用程序退出时销毁窗口而不必退出GHCI的方法?我原以为我会做这件事,但我没有成功。