Гарвардские CS51Utils

#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";; для загрузки пакета. Теперь вы можете им воспользоваться.