Module 从包管理器安装CLX/XLIB后,如何从Common Lisp使用它?
我试图在学习CommonLisp时使用CLX,因为我认为如果我有一个实际的、有形的、实用的结果,学习CLX会更有效。不幸的是,我无法让CLX工作。在debian中安装了Module 从包管理器安装CLX/XLIB后,如何从Common Lisp使用它?,module,lisp,common-lisp,x11,clisp,Module,Lisp,Common Lisp,X11,Clisp,我试图在学习CommonLisp时使用CLX,因为我认为如果我有一个实际的、有形的、实用的结果,学习CLX会更有效。不幸的是,我无法让CLX工作。在debian中安装了clisp和clisp模块clx包之后,我遵循了这一点 我想我只是严重误解了clisp的包/模块/等加载系统,但我找不到任何资源来说明如何做到这一点 foo.lisp: (defun pop-up-window (life-time &optional (host "")) (let* ((display (xlib:
clisp
和clisp模块clx
包之后,我遵循了这一点
我想我只是严重误解了clisp的包/模块/等加载系统,但我找不到任何资源来说明如何做到这一点
foo.lisp:
(defun pop-up-window (life-time &optional (host ""))
(let* ((display (xlib:open-display host))
(screen (first (xlib:display-roots display)))
(root-window (xlib:screen-root screen))
(my-window (xlib:create-window
:parent root-window
:x 0
:y 0
:width 200
:height 300)))
(xlib:map-window my-window)
(xlib:display-finish-output display)
(format t "it should be here ~%")
(sleep life-time)
(xlib:destroy-window my-window)
(xlib:close-display display)
)
(pop-up-window 10)
输出:没有名为“XLIB”的包
编辑:
我在代码开始时尝试了
(需要“clx”)
,但我发现#被锁定了
clx系统很可能没有安装。您可以自己下载归档文件并配置以加载系统,但最简单的方法是先安装。然后,您可以执行:
(ql:quickload :clx)
这将下载、编译和加载所需的系统及其所有依赖项。每次重新启动Lisp环境时都应执行此步骤。一旦您需要多个库,您还应该定义自己的系统(例如在
~/quicklisp/localprojects/
)并加载该库。该教程似乎有点过时。现在,您应该使用来安装库。我还建议在Linux上使用SBCL(包管理器版本可能已经很旧了)。@jkiiski谢谢,这太容易了!不过,我不喜欢ql:quickload命令每次运行时在脚本顶部生成几行“加载”消息://(ql:quickload“library”:silent)
,并且不会有任何消息