[英]Intero : Failed to load interface for Lib
我正在尝试为我的Haskell项目设置我的Haskero(使用Intero的Visual Studio代码扩展),但是我收到以下错误:
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.hs
app / Main.hs:
module Main where
import Lib
main :: IO ()
main = someFunc
src / Lib.hs:
module Lib
( someFunc
) where
someFunc :: IO ()
someFunc = putStrLn "someFunc"
我在Visual Studio Code中遇到了类似的问题。
在引擎盖下Haskero正确使用:
stack ghci --with-ghc intero --no-build --no-load
但是Haskero假定堆栈项目是加载到VSCode的工作目录。 如果堆栈项目是其中一个子目录,则IDE中会出现相同的错误,因为堆栈命令是从该主目录运行的。 至少这是目前Haskero 1.3.1所发生的事情。
解决方案是始终确保堆栈项目等于VSCode中的工作目录。
我没有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 build
项目, stack exec intero
实际上可以正常工作,但仍然应该通过stack ghci
调用交互式会话。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.