繁体   English   中英

Intero:无法为Lib加载界面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM