我對Clozure CL有疑問。 雖然我試圖從quicklisp快速加載一個包。 它拋出一個錯誤。已使用Google搜索,但沒有發現有用的信息。Clozure CL未找到外部變量「O_NONBLOCK」
以下是錯誤消息:
(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] [email protected]> mv darwin-x86-headers64 darwin-x86-headers64X
,然後運行CCL,並嘗試訪問該目錄中的 接口文件中定義的東西(O_NONBLOCK):
[src/ccl-dev] [email protected]> 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時,您確實會看到打印的點字符。 (有時他們很多!)
我不自稱是Quicklisp的目標受衆的一部分,但我有一票 我想我會投給能夠看到進度信息和診斷 (即使意味着看到的點數較少,甚至 - 尤其是 - 如果 指示是安裝的問題,診斷,因爲他們在這種情況下,似乎)
要停止燃燒,並試圖解決原來的問題,如果接口目錄 向後移動。 CCL期望它在哪裏,那麼:
? #$O_NONBLOCK
4
事情按預期工作。 (如果他們不這樣做,將無法編譯 CCL本身,或編譯大量使用FFI閱讀器宏的其他代碼。) 這意味着我最好的猜測是CCL未正確安裝在您的 系統。我不知道這是絕對確定的,我也沒有辦法知道它是如何安裝在您的系統上的,但我相信,如果安裝了 ,手冊和網站建議避免這樣的問題。
可能最好使用各自維護人員的支持郵件列表... – 2012-02-25 20:30:24
我使用Clozure CL。這個答案來自CCL郵件列表... – juanitofatas 2012-03-22 10:45:23