从我的包管理器安装后,如何使用Common Lisp中的CLX / XLIB?

时间:2018-02-01 15:03:58

标签: module lisp common-lisp x11 clisp

我正在尝试使用CLX同时学习常见的lisp,因为我认为如果我有一个实际的,有形的,实际的结果,它会更有效。不幸的是,我无法让CLX工作。在debian中安装clispclisp-module-clx软件包之后,我跟踪了the first bit of this tutorial

我认为我只是误解了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

1 个答案:

答案 0 :(得分:3)

很可能没有安装CLX系统。您可以自行下载存档并配置ASDF以加载系统,但最简单的方法是首先安装Quicklisp。然后,您可以执行:

(ql:quickload :clx)

下载,编译和加载所需的系统及其所有依赖项。每次重新启动Lisp环境时都应执行此步骤。只要您需要多个库,您还应该定义自己的系统(例如在~/quicklisp/local-projects/中)并加载该系统。