Ash*_*she 9 lisp common-lisp allegro-cl quicklisp
假设我在net.aserve
和之上构建了一个应用程序bordeaux-threads
.我的包声明可能如下所示:
(defpackage :my-package
(:use :cl :net.aserve :bordeaux-threads)
(:export …))
Run Code Online (Sandbox Code Playgroud)
我使用Quicklisp,所以(ql:quickload "aserve") (ql:quickload "bordeaux-threads")
在编译我的包之前我在SLIME中运行,一切都很好.
当然,明天我再次启动SLIME,我必须记得QUICKLOAD
在编译之前发出s,否则我就麻烦了.
我可以把类似的东西
(eval-when (:compile-toplevel)
(ql:quickload "aserve")
(ql:quickload "bordeaux-threads"))
Run Code Online (Sandbox Code Playgroud)
在我的软件包的顶部 - 这是我为开发所做的 - 但我觉得强制一个包管理器对用户来说不是一个好主意.
还有更好的选择吗?
z_a*_*xis 13
在您的asd文件中,您应该定义依赖实现,如下所示:''
(asdf:defsystem #:aserve
:serial t
:depends-on (#:hunchentoot :hunchentoot-cgi
#::bordeaux-threads
#:parenscript)
...)
Run Code Online (Sandbox Code Playgroud)
之后你只需要(ql:quickload:aserve).
Mir*_*anu 11
使用quickproject(可通过访问(ql:quickload :quickproject)
)为您的应用程序创建系统.正如z_axis所描述的那样,您可以在defsystem
声明中填写依赖项列表(如果您在调用时错过了任何依赖项quickproject:make-project
).
如果您在local-projects
Quicklisp安装的路径中创建新项目,您也可以快速加载项目(即使它不是Quicklisp发行版的一部分).快速加载项目当然会下载依赖项(如果它们是Quicklisp发行版的一部分),然后加载它们.