2012-02-25 62 views
0

我對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未正確安裝在您的 系統。我不知道這是絕對確定的,我也沒有辦法知道它是如何安裝在您的系統上的,但我相信,如果安裝了 ,手冊和網站建議避免這樣的問題。

+0

可能最好使用各自維護人員的支持郵件列表... – 2012-02-25 20:30:24

+0

我使用Clozure CL。這個答案來自CCL郵件列表... – juanitofatas 2012-03-22 10:45:23

回答

2

您的CCL安裝不完整或不正確。嘗試詢問CCL郵件列表。