Как я могу использовать библиотеку 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 (формат объекта). Загрузка возвращенного пути загружает библиотеку. Пожалуйста, предоставьте больше информации об ошибке, чтобы мы могли помочь вам решить эту проблему.

Другие вопросы по тегам