参考我之前的问题, Executing a lisp function from Java 我能够使用ABCL从Java调用lisp代码。 但问题是,现有的lisp代码使用CL-PPCRE包。 我无法编译代码,因为它没有找到CL-PPCRE'。 我尝试过不同的方法来添加该包, 包含 1)how does one compile a clisp program which uses cl-ppcre? 2)https://groups.google.com/forum/#!topic/cl-ppcre/juSfOhEDa1k
不起作用! 另外一点是,执行(编译文件aima.asd)完全正常,尽管它也需要cl-pprce
(defpackage #:aima-asd
(:use :cl :asdf))
(in-package :aima-asd)
(defsystem aima
:name "aima"
:version "0.1"
:components ((:file "defpackage")
(:file "main" :depends-on ("defpackage")))
:depends-on (:cl-ppcre))
最终的java代码是
interpreter.eval("(load \"aima/asdf.lisp\")");
interpreter.eval("(compile-file \"aima/aima.asd\")");
interpreter.eval("(compile-file \"aima/defpackage.lisp\")");
interpreter.eval("(in-package :aima)");
interpreter.eval("(load \"aima/aima.lisp\")");
interpreter.eval("(aima-load 'all)");
错误消息是
Error loading C:/Users/Administrator.NUIG-1Z7HN12/workspace/aima/probability/domains/edit-nets.lisp at line 376 (offset 16389)
#<THREAD "main" {3A188AF2}>: Debugger invoked on condition of type READER-ERROR
The package "CL-PPCRE" can't be found.
[1] AIMA(1):
任何人都可以帮助我吗?
答案 0 :(得分:2)
您需要先加载cl-ppcre
才能使用它。您可以使用(asdf:load-system :aima)
执行此操作,前提是您将aima和cl-ppcre放入ASDF搜索的位置。
答案 1 :(得分:2)
我使用QuickLisp添加cl-ppcre(因为没有其他方法可以帮助我)。 这就是我做的事情
(load \"~/QuickLisp.lisp\")")
(quicklisp-quickstart:install)
(load "~/quicklisp/setup.lisp")
(ql:quickload :cl-ppcre)
前2行只是一次性的事情。安装quickLisp后,您可以从第3行开始。