gpt4 book ai didi

haskell - 在 Cygwin 中编译 Haskell 代码,以及 Windows 上 Haskell 平台中的一些其他错误

转载 作者:行者123 更新时间:2023-12-04 20:52:31 25 4
gpt4 key购买 nike

我正在尝试使用 Haskell 平台 2011.2.0.1 在 Haskell 中编译一个简单的 hello world 程序。如果我在 WinGHCi 中加载代码,并使用 GUI 进行编译,则会创建 .exe。然后我可以从 Cygwin 运行 .exe。

但是,如果我尝试在 Cygwin 中编译代码(使用 ghc --make ),链接器将失败。但同样,如果我从 Windows cmd 编译提示,然后编译+链接器工作正常。

是否还有其他环境变量需要导入 Cygwin,以使编译+链接器在其中工作?我在 Cygwin PATH 中放置了以下目录:2011.2.0.1/lib/extralibs/bin , 2011.2.0.1/bin (这是我能在 Windows 环境变量中看到的仅有的两个与 Haskell 相关的有效条目)。

我还注意到 Windows 环境变量中有几个无效项(这看起来像是 Haskell 安装中的一个错误):

  • (系统变量)C/ProgramFiles/Haskell/bin - 这个目录不存在,因为我在 D 盘安装了 Haskell。
  • (用户变量)userxxx/ApplicationData/cabal/bin - 这个目录不存在。

  • 我试图在 HaskellPlatform 中提交错误报告,但我没有这样做的权限。

    最佳答案

    无法访问您的开发环境或您遇到的错误列表,我只能假设该问题与您设置 PATH 的方式有关。 .

    Windows 上的 GHC 捆绑了自己的 gcc编译器(用于 C 代码)和 ld链接器。如果你安装了 Cygwin,你可能也安装了 MinGW 工具链,它带有自己的版本 gccld .那么,您可能已经制作了 PATH变量列表/usr/bin在 Haskell Platform 二进制目录的路径之前,这使得 ghc在找到与 GHC 捆绑的版本之前,先找到 MinGW 链接器和 C 编译器。

    您需要确保在 Cygwin 目录之前列出 HP 目录。它不应该是这样的:

    $ echo $PATH
    /bin:/usr/bin:.../2011.2.0.1/bin

    相反,它应该是这样的:
    $ echo $PATH
    .../2011.2.0.1/bin:/bin:/usr/bin

    这只是对可能是什么问题的猜测,您应该提供更多详细信息以进行更好的诊断。

    关于haskell - 在 Cygwin 中编译 Haskell 代码,以及 Windows 上 Haskell 平台中的一些其他错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830911/

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