module - 从包管理器安装 Common Lisp 后,如何使用 CLX/XLIB?

标签 module lisp common-lisp x11 clisp

我在学习 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/

相关文章:

class - 不同的初始化,Common Lisp

common-lisp - 如何在 Common Lisp 中将十进制数转换为八进制数字列表?

node.js - 尝试从 git 安装 npm 模块时出错

Javascript 模块设计

javascript - 如何在运行时重新加载 ES6 模块?

emacs - 我应该将 Emacs Lisp 中的 add-to-list 称为破坏性函数吗?

common-lisp - 无差别地循环遍历数组或列表

javascript - Browserify with typescript modules - 什么是最佳设计实践?

python - Python中SymbolType有什么用?

emacs - 粘液连接不工作