在 Mac OSX 版的 LispBox 环境上安装配置 SBCL 详细过程
2019獨角獸企業重金招聘Python工程師標準>>>
在 Mac OSX 版的 LispBox 環境上安裝配置 SBCL 詳細過程
今天在OSX版的 LispBox(使用CCL) 下安裝 portableaserve 受挫,就跑到 PC下試,結果CCL結果一樣,用 SBCL 好像還有點小進展,于是決定為 Mac 上的 LispBox 也安裝一個SBCL,安裝過程中居然遇到幾個問題,還好最終全部解決了,詳細記錄一下做個參考。
首先去SBCL的官網下載最新版的用于 Mac 的安裝包,鏈接在這里:
解壓后拷貝到我的 LispBox 目錄下,然后修改兩個文件(Emacs 目錄下的lispbox.sh 和 lispbox.el),新增一個文件(在SBCL的目錄下新增 lispbox-register.el )。
修改好之后,運行,結果老是在編譯 swank-sbcl.lisp 時報錯,提示如下:
>>> ;; Error while compiling /Users/enguerrand-petit/slime/swank-sbcl.lisp: >>> ;; Don't know how to REQUIRE SB-BSD-SOCKETS. >>> ;; See also: >>> ;; The SBCL Manual, Variable *MODULE-PROVIDER-FUNCTIONS* >>> ;; The SBCL Manual, Function REQUIRE >>> ;; Aborting. 剛看到這個錯誤也有些發暈,轉念一想,很有可能是找不到路徑,檢查了一下,看到在 sbcl 的目錄下,sb-bsd-sockets 放在子目錄 contrib 下,于是反復修改了上述兩個文件: Emacs 目錄下的lispbox.sh 和 lispbox.el ,給路徑加上contrib,但結果始終不變。
沒轍了,就上網搜索,很迅速就搜到這篇帖子:http://lists.common-lisp.net/pipermail/slime-devel/2011-September/018207.html 里面提到的原因跟我分析的一樣,不過更詳細地提到是SBCL_HOME 的設置,原文如下:
>> The most likely cause is that SBCL is unable to find the "contrib" >> directory where SB-BSD-SOCKETS is stored. If I remember correctly, this >> can be specified with the SBCL_HOME environment variable: >> SBCL_HOME=<path-where-rest-of-sbcl-is>/contrib. 再次檢查我的配置文件,發現確實修改得不完全,于是首先修改 lispbox.sh,修改如下:
export SBCL_HOME=${LISPBOX_HOME}/sbcl-1.0.55-x86-darwin/contrib
再修改 lispbox.el,修改如下:
(setenv "SBCL_HOME" (lispbox-file "sbcl-1.0.55-x86-darwin/contrib")) 修改完之后再次運行,這次終于把這個坎跨過去了,不過又提示找不到 sbcl 的 core 文件,還好,剛才讀了 sbcl 的說明文檔,其中提到,想讓 sbcl 運行起來,只需要兩個文件,一個是unix可執行文件 sbcl,一個是映像文件 sbcl.core ,在 sbcl 的各級目錄里找到這兩個文件,然后一起把它們拷貝到子目錄 contrib 下。
再次運行,一切OK!
勝利的截圖:
轉載于:https://my.oschina.net/freeblues/blog/102846
總結
以上是生活随笔為你收集整理的在 Mac OSX 版的 LispBox 环境上安装配置 SBCL 详细过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OSPF路由聚合实验(详细)
- 下一篇: CHM格式的可以全文搜索的Spring3