我试图使用 lisp 代码制作可执行文件。但是我根本无法编译hellowolrd
lisp文件,因为在加载helloworld
系统 之前没有包
;; test.lisp
(asdf:load-system :helloworld)
(defun main()
(helloworld:start))
当然,我制作了helloworld
系统并将其放入~/quicklisp/local-projects/
. helloworld
系统加载成功,没有错误。
;; ~/quicklisp/local-projects/helloworld/helloworld.asd
(asdf:defsystem helloworld
:version "1.0"
:components ((:file "package")))
;; ~/quicklisp/local-projects/helloworld/package.lisp
(defpackage :helloworld
(:use :common-lisp :asdf)
(:export :start))
(in-package :helloworld)
(defun start()
(format t "Welcome, ASDF"))
我想编译test.lisp
而不显式加载。我也尝试过use-package
,defpackage
但失败了。
;; test.lisp
(asdf:load-system :helloworld)
(use-package :helloworld)
(defun main()
(helloworld:start))
;; test.lisp
(asdf:load-system :helloworld)
(defpackage :test
(:use :cl :asdf)
(:export :main))
(in-package :test)
(defun main()
(helloworld:start))
如何使用系统helloworld
中定义的包helloworld
而不加载它?我是否必须使用系统制作新helloworld
系统?