我可以 (asdf:load-system :foo),但 asdf 仍然抱怨“"foo" 没有指定包”
I can (asdf:load-system :foo), but asdf still complains that '"foo" doesn't designate a package'
为了最终开始将 asdf 用于我的 lisp 涂鸦,我尝试设置一个简单的示例。这些文件是
; contents of example.asd
(asdf:defsystem "example"
:name "example"
:depends-on ("foo")
:components ((:file "example")))
和
; contents of example.lisp
(defpackage :example
(:use :cl :asdf :foo))
(in-package :example)
(其中 "foo" 实际上是 "cl-wav",但问题仍然存在于我在本地安装的任何软件包中)。
现在,尽管 运行
(asdf:load-system :foo)
有效,当我尝试评估时
(asdf:make :example)
我收到此错误消息:
The name "FOO" does not designate any package.
我做错了什么?
就上下文而言,我的 asdf 版本是“3.1.5”,软件包 "foo" 安装了(最新版本的)quicklisp,所有这些都发生在 SBCL 1.3.20 中。
ASDF 系统与软件包不同。系统只是一种将一堆文件组合在单个应用程序或库中的方法,可以使用 Quicklisp 轻松编译、加载、测试或安装。一个系统中可能有多个包(甚至 none,尽管那会很奇怪)。通常图书馆有一个与系统同名的 "main" 包,但这不是强制性的。
在这种情况下,系统 cl-wav
定义了一个名为 WAV
的包,因此您需要在包定义中使用它。库作者用 WAV
作为昵称命名包 CL-WAV
可能更好,但他们没有这样做。
(defpackage :example
(:use :cl :asdf :wav))
为了最终开始将 asdf 用于我的 lisp 涂鸦,我尝试设置一个简单的示例。这些文件是
; contents of example.asd
(asdf:defsystem "example"
:name "example"
:depends-on ("foo")
:components ((:file "example")))
和
; contents of example.lisp
(defpackage :example
(:use :cl :asdf :foo))
(in-package :example)
(其中 "foo" 实际上是 "cl-wav",但问题仍然存在于我在本地安装的任何软件包中)。
现在,尽管 运行
(asdf:load-system :foo)
有效,当我尝试评估时
(asdf:make :example)
我收到此错误消息:
The name "FOO" does not designate any package.
我做错了什么?
就上下文而言,我的 asdf 版本是“3.1.5”,软件包 "foo" 安装了(最新版本的)quicklisp,所有这些都发生在 SBCL 1.3.20 中。
ASDF 系统与软件包不同。系统只是一种将一堆文件组合在单个应用程序或库中的方法,可以使用 Quicklisp 轻松编译、加载、测试或安装。一个系统中可能有多个包(甚至 none,尽管那会很奇怪)。通常图书馆有一个与系统同名的 "main" 包,但这不是强制性的。
在这种情况下,系统 cl-wav
定义了一个名为 WAV
的包,因此您需要在包定义中使用它。库作者用 WAV
作为昵称命名包 CL-WAV
可能更好,但他们没有这样做。
(defpackage :example
(:use :cl :asdf :wav))