In Emacs on Ubuntu Raring..我在Emacs中加载了SBCL,因为我一直在使用它。我键入 (ql:quickload "ieee-floats") 以在 emacs 中新安装的 ACL 上加载我的第一个库后键入 M-- M-x 粘液以加载 ACL 并收到此错误:
While searching for system "ieee-floats":
#P"/home/b/quicklisp/dists/quicklisp/software/c2ffi/README"
evaluated to
#P"/home/b/quicklisp/dists/quicklisp/software/c2ffi/README"
which is
not a directory.
我的ACL asdf:central-registry的前几行是:
(#P"/home/w/quicklisp/quicklisp/"
#P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/README"
#P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/autoclean"
#P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/config.h"
#P"/home/w/quicklisp/dists/quicklisp/software/c2ffi/configure.ac"
所以ACL只是看着第一个文件并停止。同样在ACL的asdf:central-registry中,它列出了根目录中的所有文件以及文件夹,但在SBCL中,它只列出了quicklisp/dist/software中的所有根文件夹,SBCL用于安装quicklisp库i/e
ACL 列出所有根文件夹文件
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/SPEC"
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/README"
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/trivial-features.asd"
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/tests"
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/COPYRIGHT"
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/trivial-features-tests.asd"
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/src"
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/release.sh"
SBCL 的 - 只列出根文件夹
#P"/home/w/quicklisp/dists/quicklisp/software/trivial-features-20130312-git/"
SBCL 和 ACL 初始化文件包含相同内容:
(require :asdf)
;put all subdirectories of quicklispsoftware into asdf:*central-registry*
(dolist (dir (directory "/home/w/quicklisp/dists/quicklisp/software/*/"))
(pushnew dir asdf:*central-registry* :test #'equal))
;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
*central-registry*
搞砸了。初始化文件中的;put all subdirectories
位导致了问题。删除它,你可以使用ql:quickload
来加载库,例如 (ql:quickload :vecto)
.