Сборка Coq из исходного кода завершается неудачно с неверной версией ocaml - PullRequest
1 голос
/ 16 марта 2019

Я пытаюсь собрать 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

Так что происходит? кто прав?

1 Ответ

3 голосов
/ 16 марта 2019

Судя по номеру версии dev в двоичном файле Ocaml, я полагаю, вы, вероятно, создали его сами.Если вы забыли выполнить как make, так и make install, двоичный файл будет находиться в вашем каталоге / usr / local / bin, если вы ничего не настраивали во время настройки.Этот каталог не находится у вас на пути, потому что для каждого двоичного файла сборки выпуска в вашей системе будет кошмаром пытаться использовать ваши сборки dev.

Для сборки Coq, когда вы настраиваете пакет, который вам нужно передатькаталог, в котором вы хотите использовать компилятор Ocaml.Так, например, если бы вы использовали тестовую сборку gcc, вы бы сделали:

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

или что-то в этом роде.Чтобы увидеть, что конкретно вы должны сделать здесь, вы можете сделать это:

./configure --help

Затем вы должны увидеть обзор того, какие флаги актуальны и что еще.Когда проект зависит от пакета, как в данном случае, меню справки должно как минимум указывать вам правильное направление.

Прежде чем я уйду, я отмечу, что из-за отчаяния некоторые люди просто копируют новый двоичный файл и заменяют его в своем каталоге / usr / bin.Я не могу рекомендовать достаточно, чтобы вы не привыкли делать это.Как только вы начинаете прыгать через ограждения, которые находятся на месте для сохранения вашего собственного здравомыслия, это только вопрос времени, прежде чем дело доходит до вентилятора, и помните: единственная вещь хуже, чем провести всю ночь, пытаясь заставить пакет работать, этовсю ночь пытаясь заставить все ваши пакеты работать.

...