Как использовать пакеты, установленные quicklisp?
=================================================

Я установил пакет CL-PNG с помощью quicklisp.

Теперь я хочу определить свой собственный пакет, который зависит от пакета CL-PNG. Вот так:

При компиляции я получаю эту ошибку:

Кажется, мне нужно позвонить`(require :PNG)` на REPL перед компиляцией моего пакета.

Что мне нужно сделать, чтобы пакет CL-PNG был доступен для компилятора без вызова вручную`require` на REPL?

ОБНОВЛЕНИЕ: я использую SBCL.

Вы путаете два отдельных понятия:`system` и`package`, & # XA0;`package` определяется стандартом Common Lisp и представляет собой набор символов, способ контролировать их видимость и использование.`system` не определено стандартом, это понятие, введенное`ASDF`, который представляет собой набор метаданных для управления взаимозависимостями файлов в одном проекте, чтобы иметь возможность правильно скомпилировать и загрузить его.`Quicklisp` построен на вершине`ASDF` предоставить способ распространения проектов, описанных в виде`ASDF system`s.

Так что при установке (`quickload`)`system`, называется`PNG`это не означает, что эта система имеет пакет, называемый`PNG`, Определяет ли система какие-либо пакеты (обычно она определяет один или даже несколько из них) и как они называются, остается на усмотрение ее автора. Большинство проектов будут иметь`package.lisp` или же`packages.lisp` файлы, где их`package`с определены.

Но в случае`CL-PNG` система, которую вы загружаете, фактически определяет пакет`PNG`и он должен быть доступен в рабочем процессе после того, как вы`quickload` Это. Но вы должны каким-то образом загружать его каждый раз, когда запускаете систему Lisp.`ASDF` предоставляет средства для определения зависимости от`CL-PNG` система, так что вы можете просто загрузить только**your own** `system`и все`system`s зависит от того, будет ли загружаться автоматически, делая доступными все`package`Вы хотите использовать.