运行使用cl-cppre的ABCL代码

时间:2015-01-27 14:03:32

标签: java lisp common-lisp abcl cl-ppcre

参考我之前的问题, 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): 

任何人都可以帮助我吗?

2 个答案:

答案 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行开始。