#ocaml #ocamlbuild
#ocaml #ocamlbuild
Вопрос:
Однако я пытаюсь создать код с использованием ocamlc, я получил ошибку Error: Unbound module Stdlib
/usr/lib/ocaml/
Каталог включает в себя следующее stdlib.a
stdlib.cma
stdlib.cxma
stdlib.p.a
stdlib.p.cxma
Версия OCaml: 4.05.0
Ответ №1:
Стандартная библиотека была переименована из Pervasives в Stdlib совсем недавно. Ваш компилятор создан до изменения; т. Е. компилятор 4.05.0 имеет модуль Pervasives и не имеет модуля Stdlib. Код, который вы пытаетесь скомпилировать, скорее всего, получен после изменения.
Обычно нет причин упоминать имя стандартной библиотеки, потому что оно «повсеместное». Итак, вы можете попробовать удалить «Stdlib». где бы вы его ни увидели. Или вы могли бы попробовать переименовать его в «Pervasives»..
Однако, если код намного более свежий, чем компилятор 4.05.0, вы можете столкнуться с другими проблемами.
Ответ №2:
Stdlib
Модуль был представлен в версии 4.07.0. До этого он вызывался Pervasives
. Похоже, вы смешиваете установки.
Несколько команд, которые могут помочь распутать его:
which ocamlc
сообщит вам, где находится компилятор.ocamlc -config
сообщит вам, где должна находиться стандартная библиотека.
Также настоятельно рекомендуется использовать opam
диспетчер пакетов OCaml для управления установками OCaml, поскольку он позволяет переключаться между несколькими установками и дает вам доступ к последней версии компилятора, как только она будет выпущена.