我在学习 common lisp 的同时尝试使用 CLX,因为我认为如果我有一个实际的、有形的、实用的结果,学习会更有效。不幸的是,我无法让 CLX 工作。我关注了the first bit of this tutorial ,安装 clisp
后和clisp-module-clx
debian 中的软件包。
我认为我只是严重误解了 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)
输出:there is no package with name "XLIB"
编辑:
我试过(require "clx")
在我的代码开头,但我得到 #<PACKAGE COMMON-LISP> is locked
.
最佳答案
CLX 系统很可能未安装。您可以自己下载存档并配置 ASDF加载系统,但最简单的途径是首先安装Quicklisp 。然后,您可以执行:
(ql:quickload :clx)
这将下载、编译并加载所需的系统及其所有依赖项。每次重新启动 Lisp 环境时都应执行此步骤。一旦您需要多个库,您还应该定义自己的系统(例如在 ~/quicklisp/local-projects/
中)并加载该系统。
关于module - 从包管理器安装 Common Lisp 后,如何使用 CLX/XLIB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48565832/