haskell - ghci在 CYGWIN 中编译Haskell代码,以及 Windows 平台上的一些它的他 Bug

  显示原文与译文双语对照的内容

我正在尝试在Haskell中编译一个简单的Hello World 程序,Haskell平台 2 011.2.0.1. 在WinGHCi中加载代码,并使用GUI进行编译,则创建. exe 。 然后我可以从 CYGWIN 运行. exe 。

但是,如果我尝试编译 CYGWIN ( 使用 ghc --make ) 中的代码,链接器将失败。 但是,如果我从 Windows cmd 提示符中进行编译,那么compile+linker会很好。

是否还有其他 环境变量 需要导入 CYGWIN,以使compile+linker工作在其中? 我在 CYGWIN 路径中放置了以下目录: 2011.2.0.1/lib/extralibs/bin2011.2.0.1/bin ( 这是我在 Windows 环境变量 中可以看到的两个有效的Haskell相关条目) 。

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

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

我试图在HaskellPlatform中提交一个 Bug 报告,但我没有权限。

时间: 原作者:

无需访问你的开发环境或者你正在获得的错误列表,我只能假设问题与你设置 PATH的方式相关。

GHC在 Windows 上附带了自己的gcc 编译器( 用于C 代码) 和 ld 链接器。 如果安装了 CYGWIN,你可能还安装了 MINGW 工具链,它带有自己的gccld 版本。 然后,你可以能在 PATH 平台二进制目录之前进行了变量列表 /usr/bin,这使得 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



这只是一个问题的猜测,你应该提供更多的细节来进行更好的诊断。

原作者:
...