首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Intero :未能为Lib加载接口

Intero :未能为Lib加载接口
EN

Stack Overflow用户
提问于 2017-04-04 19:38:11
回答 2查看 1.3K关注 0票数 4

我正在尝试为我的Haskell项目设置Haskero (使用Intero的Visual代码扩展),但是我得到了以下错误:

代码语言:javascript
复制
app\Main.hs:3:1: error:
   Failed to load interface for `Lib'
   Use -v to see a list of the files searched for.

复制步骤:

代码语言:javascript
复制
stack new project
cd project
stack build intero
stack exec intero
> :l app/Main.hs

app/Main.hs

代码语言:javascript
复制
module Main where

import Lib

main :: IO ()
main = someFunc

src/Lib.hs:

代码语言:javascript
复制
module Lib
   ( someFunc
   ) where

someFunc :: IO ()
someFunc = putStrLn "someFunc"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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,而是尝试:

代码语言:javascript
复制
stack ghci --with-ghc intero --no-build --no-load

它应该能正常工作。

(请注意,如果您首先访问项目,stack exec intero实际上可以正常工作,但交互会话仍然应该通过stack ghci调用。)

票数 1
EN

Stack Overflow用户

发布于 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中的工作目录相等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43216219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档