【发布时间】:2012-02-25 19:48:28
【问题描述】:
我有一个关于 Clozure CL 的问题。 当我试图从 quicklisp 快速加载一个包时。 它抛出一个错误。 google了一下,没找到有用的。
这是错误信息:
(ql:quickload :drakma)
To load "drakma":
Load 1 ASDF system:
drakma
; Loading "drakma"
..
Read error between positions 6342 and 6532 in /Users/Mac/quicklisp/dists/quicklisp/software/cl+ssl-20111105-git/streams.lisp.
> Error: Foreign variable "O_NONBLOCK" not found
> While executing: CCL::%LOAD-VAR, in process Listener(6).
提前谢谢你
我在邮件列表中询问过:
邮件列表中的回答:
如果您移动或重命名“darwin-x86-headers”目录(或以其他方式 尝试模拟不完整的安装):
[src/ccl-dev] gb@antinomial> mv darwin-x86-headers64 darwin-x86-headers64X
然后运行 CCL 并尝试访问在 该目录中的接口文件:
[src/ccl-dev] gb@antinomial> ccl64
Welcome to Clozure Common Lisp Version 1.8-dev-r15225M-trunk (DarwinX8664)!
? #$O_NONBLOCK
您会收到一两个关于缺少接口文件的警告
; Warning: Interface file #P"/usr/local/src/ccl-dev/darwin-x86-headers64/libc/constants.cdb" does not exist, and the containing directory does not exist.
; This may mean that that the "ccl:" logical-pathname host has not been properly initialized. ; While executing: CDB-OPEN, in process listener(1).
; Warning: Interface file #P"/usr/local/src/ccl-dev/darwin-x86-headers64/libc/vars.cdb" does not exist, and the containing directory does not exist.
; This may mean that that the "ccl:" logical-pathname host has not been properly initialized.
在收到您报告的相同错误之前。
如果您使用 Quicklisp 加载一些尝试查找该常量值的代码 在(丢失的)数据库文件中,您看不到该警告。
另一方面,您确实会在使用时看到打印的点字符 快点。 (有时很多!)
我不声称自己是 Quicklisp 目标受众的一部分,但我有投票权 我想我会投票支持能够看到进度消息和诊断 (即使这意味着看到更少的点,甚至 - 特别是 - 如果诊断 表明存在安装问题,就像在这种情况下一样。)
停止燃烧并尝试解决原来的问题,如果接口目录 被移回 CCL 期望的位置,然后:
? #$O_NONBLOCK
4
事情按预期工作。 (如果他们没有,就不可能编译 CCL 本身或编译许多使用 FFI 阅读器宏的其他代码。) 这意味着我最好的猜测是 CCL 没有正确安装在您的 系统。我不知道绝对肯定,我没有任何办法 知道它是如何安装在您的系统上的,但我相信如果它已安装 避免了手册和网站建议此类问题的方式。
【问题讨论】:
-
可能最好使用各自维护者的支持邮件列表...
-
我使用 Clozure CL。此答案来自 CCL 邮件列表...
标签: lisp common-lisp