在Windows上构建GHC时出错

Guv*_*nte 3 haskell ghc

在没有Haskell平台的情况下尝试在Windows上引导Haskell时,我遇到了以下错误

C:\ git\Haskell\ghc\libraries\haskeline\dist-install\build/libHShaskeline-0.7.1.2.a:无法读取符号:存档没有索引; 运行ranlib添加一个

请注意,这C:\git\Haskell\ghc是我放置ghcgit repo的地方.

但是每当我查看文件时,它似乎正在构建正确.

我已经尝试完全清理重建,并删除整个仓库并重新使用它,所有内容都不能删除任何与此构建相关的内容并重新开始.

Guv*_*nte 5

我最终弄明白是什么导致了这个问题,当我在Windows平台上发现以下关于GHC的注意事项时,我意识到了这一点.

但是,makefile确实使用了ld和ar恰好在你的路径中.

这似乎不对,阅读配置脚本我注意到以下几行:

mingwbin="$hardtop/inplace/mingw/bin/"
LD="${mingwbin}ld.exe"
Run Code Online (Sandbox Code Playgroud)

请注意,mingwbin指的是tarball被提取到的位置.查看可执行文件的时间戳与which ld返回的版本(in /mingw/bin)不匹配.

鉴于该注释意味着在某些时候/inplace/mingw/bin/ld.exe正在使用,而在另一个点/mingw/bin/ld.exe被使用,可能导致问题.

make解决问题之前运行以下命令.

export PATH=/c/git/Haskell/git/inplace/mingw/bin:$PATH
Run Code Online (Sandbox Code Playgroud)