我正在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/