2

参考我之前的问题, Executing a lisp function from Java 我能够使用 ABCL 从 Java 调用 lisp 代码。但问题是,现有的 lisp 代码使用 CL-PPCRE 包。我无法编译代码,因为它说“找不到 CL-PPCRE”。我尝试了不同的方法来添加该软件包,包括 1)如何编译使用 cl-ppcre 的 clisp 程序? 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): 

谁能帮我?

4

2 回答 2

2

您需要先加载cl-ppcre才能使用它。您可以使用 来做到这一点(asdf:load-system :aima),前提是您将 aima 和 cl-ppcre 放入 ASDF 搜索的位置。

于 2015-01-27T17:00:55.227 回答
2

我使用 QuickLisp 添加 cl-ppcre(因为没有其他方法对我有用)。这是我所做的

(load \"~/QuickLisp.lisp\")")
(quicklisp-quickstart:install) 
(load "~/quicklisp/setup.lisp")
(ql:quickload :cl-ppcre)

前 2 行只是一次性的事情。安装 quickLisp 后,您可以从第 3 行开始。

于 2015-01-29T13:31:22.387 回答