使用VLIME与SBCL时无法识别CFFI包的环境配置问题
Common Lisp中VLIME环境下CFFI包无法找到的解决办法
确认VLIME启动的SBCL进程加载了Quicklisp
检查~/.sbclrc文件里是否有以下代码:(load "~/quicklisp/setup.lisp")如果没有就加上,然后重启VLIME。要是SBCL没加载Quicklisp,之前安装的CFFI在VLIME进程里根本不生效。
先在VLIME REPL手动加载CFFI
别直接编译文件,先打开VLIME的REPL,输入(ql:quickload :cffi),等加载完成后再用\of命令编译代码。编译文件的环境可能和REPL隔离,先把依赖加载好再操作。用ASD系统加载代替单独编译文件
确保你的ASD文件配置正确,比如:(defsystem "my-package" :depends-on (:cffi) :components ((:file "你的源码文件名")))然后在REPL里执行
(ql:quickload :my-package),让Quicklisp自动处理依赖加载,比单独编译单个文件更可靠。把项目目录加入Quicklisp本地项目列表
如果你的ASD文件不在Quicklisp默认搜索路径里,执行以下代码添加路径:(push #P"/你的项目所在绝对路径/" ql:*local-project-directories*)这样Quicklisp才能识别你的系统并正确加载依赖。
重置VLIME进程
要是之前操作导致VLIME卡死,直接断开连接重启SBCL和VLIME,从头按步骤来:先加载Quicklisp,再加载CFFI,最后加载你的项目系统。
内容的提问来源于stack exchange,提问作者genghiskhan
相关产品推荐
相关产品推荐

