Как я могу использовать библиотеку Common Lisp (Clozure CL)?
Я изучаю Common Lisp (Clozure CL) на Mac и хотел бы создать простой графический интерфейс. Я скачал библиотеку "ltk" из CLiki и поместил ее в каталог проекта на корневом уровне (я предполагал, что должен был сделать это, так как не мог найти инструкции для начинающего).
На странице 4 документации "LTK - привязка Lisp к инструментарию Tk" говорится, что библиотека должна быть скомпилирована с использованием (compile-file "ltk")
перед загрузкой библиотеки с помощью (load "ltk")
, Тем не менее, я получаю это сообщение об ошибке:
Ошибка: файл #P"/Users/myName/Desktop/lisp_experiment /GUI_EXAMPLE/ltk" не найден При выполнении: CCL::FCOMP-FIND-FILE, в процессе Listener(4). Введите cmd-. прервать, cmd-\ для получения списка доступных перезапусков. Тип:? для других вариантов.
Я также использовал полный путь к файлу и получил ту же ошибку.
Что я делаю неправильно?
Спасибо за вашу помощь.
Марк
ps - в Интернете почти нет руководств по noob о подобных вещах, которые шаг за шагом проводят пользователя через процесс.
1 ответ
Я скачал библиотеку "ltk" из CLiki и поместил ее в директорию проекта на корневом уровне.
В настоящее время этот шаг редко требуется, поскольку библиотеки легко доступны с помощью Quicklisp (см. Также этот рисунок). По сути, вы должны иметь возможность установить Quicklisp и запустить следующее:
(ql:quickload "ltk")
Вышеуказанное загружает, компилирует и устанавливает библиотеки Lisp, но не обязательно необходимые библиотеки C, которые вам может потребоваться установить отдельно. Если вышеописанное работает без проблем, то должно работать и следующее:
(ltk:ltktest)
Quicklisp опирается на системы Lisp, описываемые с помощью ASDF (еще одно средство определения системы). Документ о лучших практиках также интересно читать.
В случае ЛТК, вы можете видеть, что ltk.asd
указывает только один компонент, ltk.lisp
, Когда вы устанавливаете систему с именем "LTK", quicklisp выполнит всю необходимую работу для установки ее зависимостей, затем скомпилирует и загрузит ltk.lisp
, как описано в руководстве.
Что неясно, так это то, почему ваш явный compile-file
не удалось.
Я нашел ltk.lisp
файл на моей машине; его путь выглядит так:
#P"/home/user/quicklisp/dists/quicklisp/software/ltk-20150113-http/ltk.lisp"
Конечно же, звонит compile-file
с этим путем работает и возвращает другой путь, который заканчивается .fasl
(формат объекта). Загрузка возвращенного пути загружает библиотеку. Пожалуйста, предоставьте больше информации об ошибке, чтобы мы могли помочь вам решить эту проблему.