我正在尝试为我的Haskell项目设置Haskero (使用Intero的Visual代码扩展),但是我得到了以下错误:
app\Main.hs:3:1: error:
Failed to load interface for `Lib'
Use -v to see a list of the files searched for.复制步骤:
stack new project
cd project
stack build intero
stack exec intero
> :l app/Main.hsapp/Main.hs
module Main where
import Lib
main :: IO ()
main = someFuncsrc/Lib.hs:
module Lib
( someFunc
) where
someFunc :: IO ()
someFunc = putStrLn "someFunc"发布于 2017-04-05 03:25:55
我没有使用Haskero的经验,但我可以在Linux机器上使用普通的Intero安装来复制这个问题。
问题是您是通过stack exec而不是stack ghci调用Intero后端的。如果您尝试使用stack exec ghci而不是stack ghci来调用一个通常的GHC交互式会话(有关更多信息,请参见stack ghci ),您将注意到同样的问题。
不要使用stack exec intero,而是尝试:
stack ghci --with-ghc intero --no-build --no-load它应该能正常工作。
(请注意,如果您首先访问项目,stack exec intero实际上可以正常工作,但交互会话仍然应该通过stack ghci调用。)
发布于 2017-09-03 23:43:38
我在Visual代码中也出现了类似的问题。
在车盖下,Haskero适当地使用:
stack ghci --with-ghc intero --no-build --no-load
但是,Haskero假设堆栈项目是加载到VSCode的工作目录。如果堆栈项目是子目录之一,那么IDE中也会出现相同的错误,因为堆栈命令是从该主目录运行的。至少这是目前Haskero 1.3.1的情况。
解决方案是始终确保堆栈项目与VSCode中的工作目录相等。
https://stackoverflow.com/questions/43216219
复制相似问题