2017-04-21 114 views
1

我一直在用allegro common lisp運行一個lisp程序幾天。我現在需要使用CLISP但是當我嘗試編譯它,我得到:Clisp找不到包

SYSTEM::%FIND-PACKAGE: There is no package with name 
     "COMMON-GRAPHICS-USER" 

我非常新的口齒不清,所以我一直在尋找一個解決方案,但我沒有發現。

  • clisp在哪裏找這個包?
  • 我該如何添加它們?

我懷疑這是非常基本的,但我仍然不知道如何解決它。

+0

您是否實際使用Allegro Common Graphics進行GUI工作?我問,因爲他們在項目上默認設置了這個項目,IIRC。如果沒有,只需將這些引用更改爲:common-lisp-user或:cl-user。 – kennytilton

回答

2

軟件包(基本上)Common Lisp中的命名空間:使用軟件包查找符號(即名稱),通常生活在軟件包中,並且存在當前軟件包的概念和軟件包知道他們願意查看哪些其他軟件包符號等等。因此,軟件包並不是以Python的方式加載的,儘管在加載某些東西時可能會創建軟件包。 (爲了增加混淆,當然人們稱之爲代碼的集合也會被加載'包'!)

所以這種失敗意味着包系統的當前狀態是錯誤的,特別是它可能試圖在名稱爲COMMON-GRAPHICS-USER的包中查找符號(通過閱讀器或其他機制),並且此包不存在。 (這也可能是想直接找到一個包,例如當另一個軟件包要求使用這個包。)

遺憾的是,幾乎可以肯定,這個包是否存在僅限於Allegro CL爲常見的圖形的一部分的情況下,這是一個ACL的事情:可能有人寫了一個便攜式版本,但我不知道它。

不幸的是,您嘗試運行的代碼很可能是Allegro CL特有的代碼。


注:以上是不是CL包裝系統的全面描述:如果你想了解它的細節,與the standard開始。有一個古老的笑話,第11章介紹了軟件包的一個很好的理由,儘管我個人認爲這是不合理的。

+0

謝謝,看來你是對的。我安裝了quicklisp,試圖尋找軟件包,但沒有找到它,所以我想這是特定於allegro CL的 – Nevado