Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 在GHCI内创建SDL2窗口_Haskell_Sdl 2_Ghci - Fatal编程技术网

Haskell 在GHCI内创建SDL2窗口

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"} 如果有什么

我一直在使用SDL2绑定。尽管我可以执行编译后的程序,但无论我如何尝试,都无法从GHCi打开窗口。我已经尝试了存储库中的示例,但它们都有相同的问题。我一直收到的错误消息是:

*** 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的方法?我原以为我会做这件事,但我没有成功。