gpt4 book ai didi

haskell - 在 GHC 中编译单独的模块

转载 作者:行者123 更新时间:2023-12-04 04:42:50 26 4
gpt4 key购买 nike

我真的很难在 GHC 中做一件非常简单的事情:我有一个可以正常工作和编译的程序,但是当我拆分它以便部分代码位于单独的模块中时,我无法让它工作.单独的模块称为 FICutilities

ghc -o FICutilities FICutilities.hs C:\ghc\ghc-6.10.1/libHSrts.a(Main.o):Main.c:(.text+0x7): undefined reference to __stginit_ZCMain'
C:\ghc\ghc-6.10.1/libHSrts.a(Main.o):Main.c:(.text+0x36): undefined reference to
ZCMain_main_closure' collect2: ld returned 1 exit status



据我所知,这是因为没有主要功能,但我不想在这个模块中有一个。我使用的是 6.10.1 版本,因为我无法获得更新的版本。

请问有人可以帮忙吗?!谢谢,克莱尔。

最佳答案

只需添加 -c转变。

但是,您不应该自己构建模块:推荐的构建方式是使用 Cabal。

其他方式有:

  • ghc --make Main.hs构建 main 并根据需要重新编译其依赖项。
  • ghc -M Main.hs递归解析导入并生成具有依赖项的 makefile,以便您可以在构建系统中使用此信息。

  • 两者都没有 http://www.haskell.org/ghc/docs/latest/html/users_guide/modes.html也不是 http://www.haskell.org/ghc/docs/latest/html/users_guide/modes.html#make-mode--make已弃用。如果 Cabal 是一个可行的选择,则不建议这样做。如果没有 Cabal,一个大项目很难维护。 Haskell 工具链中的一些工具具有 Cabal 插件(例如 UUAGC 属性语法预处理器等)。

    关于haskell - 在 GHC 中编译单独的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18635030/

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