1

我正在 Mac 上学习 Common Lisp (Clozure CL),并想创建一个简单的 GUI。我已经从 CLiki 下载了“ltk”库并将其放入根级别的项目目录中(我假设我必须这样做,因为我找不到初学者的说明)。

“LTK - a Lisp binding to the Tk toolkit”文档的第 4 页说,在(compile-file "ltk")使用(load "ltk"). 但是,我收到此错误消息:

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

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

我究竟做错了什么?

谢谢你的帮助。

马克

ps - 几乎没有关于这种事情的新手教程在线引导用户逐步完成该过程。

4

1 回答 1

2

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

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

(ql:quickload "ltk")

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

(ltk:ltktest)

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

在 LTK 的情况下,您可以看到ltk.asd它只指定了一个组件,ltk.lisp. 当您安装名为“LTK”的系统时,quicklisp 将完成所有必要的工作来安装其依赖项,然后编译和加载ltk.lisp,如手册中所述。

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

我在我的机器上找到了该ltk.lisp文件;它的路径名看起来像:

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

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

于 2018-03-08T15:44:53.600 回答