Haskell使用GHC

时间:2015-06-16 17:23:41

标签: linux haskell makefile ghc theorem-proving

我正在尝试安装源自here的悖论定理证明。

当我运行makefile时,这是运行的命令: ghc -optl -static -lstdc++ -I../instantiate -I../minisat/current-base ../minisat/current-base/Solver.or ../minisat/current-base/Prop.or ../instantiate/MiniSatWrapper.or ../instantiate/MiniSatInstantiateClause.or -fglasgow-exts -O2 -static -threaded -main-is Paradox.Main.main --make Paradox.Main -o paradox

它导致了几个错误:

Flags.hs:52:8:
    Could not find module ‘Char’
    Use -v to see a list of the files searched for.

适用于各种模块,包括但不限于CharCPUTimeIO

最后的错误消息是

Makefile:38: recipe for target 'paradox.exe' failed
make: *** [paradox.exe] Error 1

我不知道Haskell,也不是我对GNU make非常有经验,但我正在尝试为项目安装此软件包,并且它不够模糊,不能为我的操作系统打包(我是运行Arch Linux)。据我所知,它没有为任何操作系统打包,因此有必要从源代码安装。

据我所知,问题始于以下错误消息:

on the commandline: Warning: -fglasgow-exts is deprecated: Use individual extensions instead

我正在使用Arch Linux软件包存储库中提供的GHC版本:package link

1 个答案:

答案 0 :(得分:2)

看起来paradox是为GHC的旧版本编写的。您可以使用GHC 7.8或更早版本并设置

来修复所有这些“找不到模块”错误
GHC     = ghc -hide-package base -package haskell98
在Makefile中

,但之后你可能会遇到更多错误。

关于-fglasgow-exts的警告大部分都是无害的,您可以忽略它。