#ocaml
Вопрос:
Я пытаюсь разобраться в лабораториях и наборах проблем, которые доступны для онлайн-курса Гарвардского CS 51. Тем не менее, я столкнулся с проблемой в лаборатории 10 с установкой пакета OCaml под названием CS51Utils. Когда я ввожу команду opam pin add CS51Utils https://github.com/cs51/utils.git -y
, которая должна установить пакет, я получаю следующую ошибку:
#=== ERROR while compiling CS51Utils.1.0.0 ====================================#
# context 2.0.8 | macos/x86_64 | ocaml-base-compiler.4.12.0 | pinned(git https://github.com/cs51/utils.git#2c8066ff)
# path ~/.opam/4.12.0/.opam-switch/build/CS51Utils.1.0.0
# command ~/.opam/opam-init/hooks/sandbox.sh build dune build -p CS51Utils -j 11
# exit-code 1
# env-file ~/.opam/log/CS51Utils-2629-2dea01.env
# output-file ~/.opam/log/CS51Utils-2629-2dea01.out
### output ###
# File "bin/dune", line 3, characters 12-20:
# 3 | (libraries graphics)
# ^^^^^^^^
# Error: Library "graphics" not found.
# Hint: try:
# dune external-lib-deps --missing --no-config --root . --ignore-promoted-rules --default-target @install --always-show-command-line --promote-install-files --release --only-packages CS51Utils -p CS51Utils --profile release -j 11 @install
Похоже, ошибка в том, что библиотека «графики» не найдена, но не уверена, что с этим делать. Я подумал, что выброшу его здесь и посмотрю, есть ли какой-нибудь шанс, что кто-то здесь прошел курс и столкнулся с этой ошибкой или имеет какие-либо идеи о том, что может происходить.
Комментарии:
1. В соответствии с руководством по установке CS51 Ocaml , вы пробовали установить требования к графике?
opam install -y graphics
Ответ №1:
Вы наткнулись на ошибку в определении пакета CS51Utils. Они используют graphics
пакет в соответствии с этим dune
файлом.
Но они не перечисляют пакет как зависимость в dune-project
файле, где перечислены другие зависимости.
Им нужно добавить graphics
туда зависимость, чтобы в будущем она устанавливалась автоматически. Я рекомендую вам подать отчет об ошибке в репо. Пока они этого не сделают, вы можете вручную установить пакет с помощью: opam install graphics
.
Комментарии:
1. Спасибо. Похоже, это решило проблему с установкой CS51Utils. Я получил сообщение «установлен CS51Utils.1.0.0». Однако, когда я открываю OCAML в терминале и печатаю
open CS51Utils ;;
, я получаю ошибку «несвязанный модуль». Так что теперь нужно выяснить, почему это происходит. Тем не менее, я очень признателен за помощь в установке пакета.2. @AshKetchum используйте utop, который является лучшим REPL (интерактивная среда). Установите с помощью:
opam install utop
. Затем бегиutop
, чтобы открыть его. Затем в utop запустите:#require "CS51Utils";;
для загрузки пакета. Теперь вы можете им воспользоваться.