我正在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-几乎没有任何关于这种事情的noob在线教程,可以一步一步地引导用户完成这个过程。

最佳答案

我已经从CLiki下载了“ltk”库,并将其放在根级别的项目目录中。
现在,这是一个很少需要的步骤,因为使用Quicklisp可以很容易地访问库(另请参见this gif)。
基本上,您应该能够安装quicklisp并运行以下命令:

(ql:quickload "ltk")

上面的下载、编译和安装Lisp库,但不一定是必需的C库,您可能需要单独安装这些库如果上面的方法没有问题,那么下面的方法也应该有效:
(ltk:ltktest)

Quicklisp依赖于用ASDF描述的Lisp系统(另一个系统定义工具)best practices文档也很有趣。
在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结尾的另一个路径名(对象格式)加载返回的路径名将加载库请提供有关错误的详细信息,以便我们可以帮助您调试此问题。

关于user-interface - 如何使用Common Lisp(Clozure CL)库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49176092/

10-12 05:19