我试图在学习通用lisp的同时使用CLX,因为我认为如果我有一个实际的、切实的、实际的结果,那么学习CLX会更有效不幸的是,我不能让CLX工作在debian中安装了clisp
和clisp-module-clx
包之后,我遵循了the first bit of this tutorial。
我想我只是对clisp的包/模块/等等加载系统产生了可怕的误解,但是我找不到任何资源来说明如何做到这一点。
口齿不清:
(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/