簡體   English   中英

GHC鏈接器錯誤(堆棧)

[英]GHC Linker error (stack)

我在Haskell中有點初學者,我正在嘗試使用堆棧來構建應用程序。

但是, 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的實現

lint _ = []

它編譯得很好。

我可以執行stack ghci並使用完整的lint實現就好了。 為什么它無法鏈接?

正如yuras正確指出的那樣,在cabal文件中的exposed-modules下添加模塊可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM