安装tcoq时,OCaml和预处理器具有不兼容的版本错误

时间:2018-12-26 00:51:46

标签: ocaml coq camlp4 coq-plugin

我正在尝试安装tcoq,但出现以下错误:

"/Users/pinocchio/.opam/4.05.0/bin/ocamlfind" ocamlc -rectypes  -w -3-52-56 -c grammar/compat5.ml
OCAMLC -c -pp grammar/gramCompat.mlp
>> Fatal error: OCaml and preprocessor have incompatible versions
Fatal error: exception Misc.Fatal_error
make[1]: *** [grammar/gramCompat.cmo] Error 2
make: *** [submake] Error 2

有人知道吗?

  1. 错误是什么意思?
  2. 如何解决?

我在网上看到了相关的帖子

https://coq-club.inria.narkive.com/h4i0KOH0/problem-compiling-coq

但是它并不是很有帮助。我做到了:

ocaml -I +camlp5

按照他们的建议,似乎工作正常……

我确实做了make clean,但这没有帮助。


我刚刚意识到我跳过了INSTALL的第3步,但是如果idk与问题或我想怎么做有关,则为idk:

3- The uncompression and un-tarring of the distribution file gave birth
   to a directory named "coq-8.xx". You can rename this directory and put
   it wherever you want. Just keep in mind that you will need some spare
   space during the compilation (reckon on about 300 Mb of disk space
   for the whole system in native-code compilation). Once installed, the
   binaries take about 30 Mb, and the library about 200 Mb.

我正在尝试安装游戏手柄,并且需要按照说明进行操作。特别是我运行了以下3个命令:

opam switch 4.05.0
opam install camlp4
opam install ocamlfind

最新错误:

make
/Library/Developer/CommandLineTools/usr/bin/make --warn-undefined-variable --no-builtin-rules -f Makefile.build
OCAMLC -c -pp grammar/gramCompat.mlp
>> Fatal error: OCaml and preprocessor have incompatible versions
Fatal error: exception Misc.Fatal_error
make[1]: *** [grammar/gramCompat.cmo] Error 2
make: *** [submake] Error 2

在阅读该错误之后,我奇迹般地打印了ocamlcamlp5的版本:

$ camlp5 -v
Camlp5 version 7.07 (ocaml 4.07.0)

和:

ocaml
    OCaml version 4.05.0

很明显那是错误的,所以也许第一步是修复camlp54.05.0一起使用,因为那是我需要的。


我尝试卸载camlp5,但拒绝了!

brew uninstall camlp5
Error: Refusing to uninstall /usr/local/Cellar/camlp5/7.07
because it is required by coq, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies camlp5

1 个答案:

答案 0 :(得分:3)

看来您已经弄明白了错误的含义。本地camlp5所针对的OCaml版本与您通过opam使用的OCaml版本不同。让我直接切换(意为双关语)到您问题的第二部分。

这里的主要问题来自以下事实:您为OCaml软件包使用了两种不同的来源,即软件包管理器(例如brewopam。为了解决您的问题,您应该仅从一个来源安装这些软件包。我建议使用opam,因为它可以让您通过开关轻松管理不同的OCaml版本。

例如,使用

简单地卸载camlp5的本地版本
brew uninstall camlp5

然后使用opam安装它:

opam install camlp5

此建议也适用于其他OCaml软件包,例如ocamlbuildcamlp4等。