假设我在 net.aserve
和 bordeaux-threads
之上构建了一个应用程序。我的包声明可能如下所示:
(defpackage :my-package
(:use :cl :net.aserve :bordeaux-threads)
(:export …))
我使用 Quicklisp,所以我在编译包之前在 SLIME 中运行 (ql:quickload "aserve") (ql:quickload "bordeaux-threads")
,一切正常。
当然,明天我再次启动 SLIME,我必须记得在编译之前发出 QUICKLOAD
,否则我就有麻烦了。
我可以放一些像
(eval-when (:compile-toplevel)
(ql:quickload "aserve")
(ql:quickload "bordeaux-threads"))
在我的包的顶部——这是我为开发所做的——但我觉得将包管理器强加给用户并不是一个好主意。
有更好的选择吗?
在你的asd文件中,你应该定义依赖关系如下:''
(asdf:defsystem #:aserve
:serial t
:depends-on (#:hunchentoot :hunchentoot-cgi
#::bordeaux-threads
#:parenscript)
...)
之后你只需要 (ql:quickload :aserve) 。
我是一名优秀的程序员,十分优秀!