如何使用Common Lisp(Clozure CL)库?

时间:2018-03-08 14:57:03

标签: user-interface frameworks lisp common-lisp clozure-cl

我在Mac上学习Common Lisp(Clozure CL),并希望创建一个简单的GUI。我已经下载了" ltk"来自CLiki的库并将其放入根级别的项目目录中(我假设我必须这样做,因为我无法找到初学者的指令)。

LTK的第4页 - 与Tk工具包绑定的Lisp"文档说,在使用(compile-file "ltk")加载库之前,应使用(load "ltk")编译库。但是,我收到此错误消息:

  

错误:文件#P" / Users / myName / Desktop / lisp_experiments / GUI_EXAMPLE / ltk"未找到   执行时:CCL :: FCOMP-FIND-FILE,在进程Listener(4)中执行。   输入cmd-。要中止,cmd- \以获取可用重新启动的列表。   类型:?其他选择。

我还使用了完整的文件路径名并得到了同样的错误。

我做错了什么?

感谢您的帮助。

马克

ps - 几乎没有关于此类在线事物的noob教程,它们逐步引导用户完成整个过程。

1 个答案:

答案 0 :(得分:2)

  

我已从CLiki下载了“ltk”库,并将其放入根级别的项目目录中。

如今,这是一个很少需要的步骤,因为可以使用Quicklisp轻松访问库(另请参阅this gif)。 基本上,您应该能够安装Quicklisp并运行以下命令:

(ql:quickload "ltk")

以上下载,编译和安装Lisp库,但不一定是必需的C库,您可能需要单独安装。如果上述工作没有问题,那么以下内容也应该有效:

(ltk:ltktest)

Quicklisp依赖于使用ASDF(另一个系统定义工具)描述的Lisp系统。 best practices文档也很有趣。

对于LTK,您可以看到ltk.asd仅指定一个组件ltk.lisp。当您安装名为“LTK”的 system 时,quicklisp将执行所有必要的工作来安装其依赖项,然后编译并加载ltk.lisp,如手册中所述。

目前尚不清楚您的明确compile-file失败的原因。

我在我的机器上找到了ltk.lisp文件;它的路径名如下:

#P"/home/user/quicklisp/dists/quicklisp/software/ltk-20150113-http/ltk.lisp"

果然,使用该路径名调用compile-file并返回另一个以.fasl结尾的路径名(对象格式)。加载返回的路径名会加载库。请提供有关错误的更多信息,以便我们帮助您调试此问题。