Запустите код ABCL, который использует cl-cppre
Со ссылкой на мой предыдущий вопрос, выполняя функцию lisp из Java, я смог вызвать код lisp из Java, используя ABCL. Но проблема в том, что уже существующий код lisp использует пакет CL-PPCRE. Я не могу скомпилировать код, так как он говорит: "CL-PPCRE not found". Я пробовал разные подходы, чтобы добавить этот пакет, в том числе 1) как скомпилировать программу clisp, которая использует cl-ppcre?2) https://groups.google.com/forum/
Не работает! Другое дело, что выполнение (compile-file 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 ответа
Я использовал QuickLisp для добавления cl-ppcre (потому что у меня больше ничего не получалось). Вот что я сделал
(load \"~/QuickLisp.lisp\")")
(quicklisp-quickstart:install)
(load "~/quicklisp/setup.lisp")
(ql:quickload :cl-ppcre)
Первые 2 строки являются единовременными вещами. После установки quickLisp вы можете начать со строки 3.
Вам нужно загрузить cl-ppcre
прежде чем вы сможете использовать его. Вы можете сделать это с помощью (asdf:load-system :aima)
при условии, что вы поместите и aima, и cl-ppcre в места, которые ищет ASDF.