从源代码构建 Coq 失败,ocaml 版本不正确

Building Coq from source fails with incorrect ocaml version

我正在尝试从源代码构建 Coq

$ git clone https://github.com/coq/coq.git
$ cd coq && ./configure

为此我得到了(错误的)回应:

Your version of OCaml is 4.04.0.
You need OCaml 4.05.0 or later.
Configuration script failed!

当我在终端输入 ocaml --version 时,我得到的是:

The OCaml toplevel, version 4.09.0+dev0-2019-01-18

所以这是怎么回事?谁是对的?

根据 Ocaml 二进制文件的开发版本号判断,我猜您可能是自己构建的。如果您记得同时执行 make 和 make install,二进制文件将位于您的 /usr/local/bin 目录中,前提是您在配置期间没有自定义任何内容。该目录不在您的路径中,因为对于您系统上的每个发布构建二进制文件来说,尝试使用您的开发构建将是一场噩梦。

要构建 Coq,当您配置包时,您需要传入您要使用的 Ocaml 编译器所在的目录。因此,例如,如果您使用的是 gcc 的测试版本,您会这样做:

./configure CC=/usr/local/bin/gcc-8.2.1-testbuild . 

或者类似的东西。要查看您必须在此处具体执行的操作,您可以这样做:

./configure --help

然后您应该会看到有关哪些标志是相关的以及诸如此类的东西的概述。当一个项目依赖于一个包时,就像这里的情况一样,帮助菜单至少应该为您指明正确的方向。


在我走之前,我会注意到出于绝望,有些人会干脆复制新的二进制文件并替换他们 /usr/bin 目录中的二进制文件。我极力推荐您不要养成这样做的习惯。一旦你开始跳过为保护你自己的理智而设置的护栏,事情就会变得糟糕只是时间问题,记住:唯一比整夜试图让一个包工作更糟糕的事情是整晚都在努力让 所有 您的包裹正常工作。