Common lisp 系统中的文件能否依赖于另一个系统中的文件?

Common lisp 系统中的文件能否依赖于另一个系统中的文件?,common-lisp,system,asdf,Common Lisp,System,Asdf,我正在读《实用通俗Lisp》一书,现在读第25章。对于每一章,我在书的文件夹中创建一个文件夹,其中包含章节的系统定义文件、包定义文件和代码。在第25章中,我需要在第24章中构建的包,因此第25章的包定义如下所示: (defpackage :chapter-25-package (:use :common-lisp :chapter-24-package)) 但是第24章的程序包不在第25章的系统中。我可以在这个包中使用它,而不必将它包含在系统中吗?注意:它们位于同一文件夹中的不同文件夹中 这是

我正在读《实用通俗Lisp》一书,现在读第25章。对于每一章,我在书的文件夹中创建一个文件夹,其中包含章节的系统定义文件、包定义文件和代码。在第25章中,我需要在第24章中构建的包,因此第25章的包定义如下所示:

(defpackage :chapter-25-package (:use :common-lisp :chapter-24-package))
但是第24章的程序包不在第25章的系统中。我可以在这个包中使用它,而不必将它包含在系统中吗?注意:它们位于同一文件夹中的不同文件夹中

这是我的系统定义。在第25章文件夹中有第24章系统中所有必要文件的链接。如果没有必要,请告诉我


(defpackage#:第25章asd(使用:cl:asdf)(出口:第25章系统))
(包装:第25章asd)
(除雾系统第25章-除雾系统
:name“第25章-系统
:组件
(:文件“chapter-25-package”:取决于(“chapter-24-package”))
(:文件“chapter-25”:取决于(“chapter-25-package”))
:取决于(“第24章系统”))
这是我得到的错误:


未找到组件“第24章-包装”,由
#
[类型为ASDF/FIND-COMPONENT的条件:缺少依赖项]

编辑:这是我提出的第二个问题,如果有任何不好的做法,我很抱歉。如果您能告诉我,我将不胜感激。

简言之,没有,但您可以依赖其他系统

要依赖于不同的系统,请使用系统定义中的
:depends on

第25章asd

(defsystem "chapter-25"
  :depends-on ("chapter-24")
  :components ((:file "package")
               (:file "chapter-25" :depends-on ("package"))))
假设ASDF可以在文件“chapter-24.asd”中找到系统“chapter-24”,这使得ASDF确保在加载系统“chapter-25”之前加载系统“chapter-24”

在系统代码“chapter-25”中,您可以假设系统“chapter-24”中定义的包已加载并可以引用,例如。G通过
:使用
defpackage
选项:

(defpackage #:chapter-25
  (:use (#:cl #:chapter-24)))

简言之,是的,您可以依赖其他系统。只需使用“ASDF”系统

在这种情况下,每个lisp文件将被视为一个单独的子系统,并且可以依赖于来自相同或另一个系统的文件。和依赖项将从defpackage表单中推断

这是一个例子。
这些是从另一个系统的不同文件导入的。

但这需要有一个包含这两个系统的顶级系统,不是吗?