1

我启动可执行文件(在使用 cabal 构建它之后),它显示“应用程序已启动,正在侦听端口 3000”。接下来,我使用 Web 浏览器连接到它,控制台显示“threadWaitRead 在 Windows 上需要 -threading,或者使用 System.IO.hWaitForInput。” 网络浏览器从不连接。不知道这实际上是建议我做什么来解决问题。

{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses,
             TemplateHaskell, OverloadedStrings #-}
import Yesod

data HelloWorld = HelloWorld

mkYesod "HelloWorld" [parseRoutes|
/ HomeR GET
|]

instance Yesod HelloWorld

getHomeR :: Handler RepHtml
getHomeR = defaultLayout [whamlet|Hello World!|]

main :: IO ()
main = warpDebug 3000 HelloWorld
4

2 回答 2

2

问题可能已经在这里介绍了:http ://hdiff.luite.com/cgit/warp/commit?id=1.3.1.1

强制 cabal 使用 1.3.1 版本的 warp,事情应该会按预期工作。根据我的经验,它仍然需要与 -thread 链接。

于 2012-10-11T15:33:40.820 回答
1

我不确定您如何编译可执行文件,但使用-threaded听起来可以解决问题,例如:

ghc --make hello-yesod.hs -threaded
hello-yesod.exe
于 2012-10-08T16:17:01.797 回答