我启动可执行文件(在使用cabal构建它之后)并显示“应用程序已启动,正在侦听端口3000”。接下来,我使用我的Web浏览器连接到它,控制台说“threadWaitRead在Windows上需要-threaded,或者使用System.IO.hWaitForInput”。 Web浏览器永远不会连接。不确定这实际上是建议我做什么来解决问题。
{-# 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
答案 0 :(得分:2)
这里可能已经引入了问题:http://hdiff.luite.com/cgit/warp/commit?id=1.3.1.1
强制cabal使用1.3.1版本的warp,事情应该按预期工作。根据我的经验,它仍然需要与 - 线程相关联。
答案 1 :(得分:1)
我不确定你是如何编译可执行文件的,但使用-threaded
听起来会解决问题,例如:
ghc --make hello-yesod.hs -threaded
hello-yesod.exe