gpt4 book ai didi

haskell - GHC 链接器错误(堆栈)

转载 作者:行者123 更新时间:2023-12-02 10:48:08 25 4
gpt4 key购买 nike

我是 Haskell 的初学者,我正在尝试 stack构建应用程序。

但是,stack build 在执行时给我链接器错误:

Linking .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/sim-exe/sim-exe ...
[...]/.stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/libHSsim-0.1.0.0-EmdGqYS9bXF9VefempSPEG.a(Lib.o):(.text+0x98f5): undefined reference to `simzuEmdGqYS9bXF9VefempSPEG_Linter_lint_info'
[...]/.stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/libHSsim-0.1.0.0-EmdGqYS9bXF9VefempSPEG.a(Lib.o):(.data+0x5f0): undefined reference to `simzuEmdGqYS9bXF9VefempSPEG_Linter_lint_closure'
collect2: error: ld returned 1 exit status

查看标签告诉我它与此函数中的闭包相关:

lint :: String -> [LintError]
lint source = let
handleParseError :: ParseError -> [LintError]
handleParseError e = [LintError (fromSourcePos $ errorPos e) $ format e]
in
case parseSim source of
(Left error) -> handleParseError error
(Right prog) -> lintProgram prog

但是那里并没有真正的闭包?如果我将 lint 的实现替换为

lint _ = []

它编译得很好。

我可以执行 stack ghci 并尝试完整的 lint 实现。为什么链接失败?

最佳答案

正如 yuras 正确指出的那样,在 cabal 文件中的 exposed-modules 下添加该模块可以解决该问题。

关于haskell - GHC 链接器错误(堆栈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com