3

cffiパッケージをsbclにインストールしようとしています。まず、cffiのインストールページで推奨されているclbuildを試しました。私が走ろうとしたとき:

clbuild quickload cffi

私は次のようなエラーが発生しました:

The function ASDF::SOURCE-REGISTRY is undefined.

次にasdf-installを試しましたが、不平を言うことになります

Component "cffi-examples" not found

これに関する助けをいただければ幸いです。

アップデート

asdf-installの場合、slimeを使用してsbclを実行しています。不足しているコンポーネントについて不平を言うときはいつでも、そのコンポーネントは実際にインストールされているようです。デバッガーを中止してEmacsを再起動し、slimeを起動して、そのインストールを再度実行するだけで、正常に終了します。スライムで実行せず、ターミナルのsbclプロンプト内で実行すると、コンポーネントがノンストップで欠落していると文句を言い続けます。

したがって、cffiをasdf-installでインストールするには、Emacsを約4〜5回再起動する必要がありました。

sbclに設定の問題があるかどうかわかりませんか?

この質問は別のスレッドで行う必要があると思います。

4

2 に答える 2

10

Quicklisp を使えばとても簡単です。Quicklisp をインストールするには:

次に、次のように CFFI をインストールしてロードできます。

  • (ql:quickload "cffi")

小さなプロジェクトとそれに必要なライブラリをどのように管理するかについては、「quickproject と Quicklisp を使用して小さな Lisp プロジェクトを作成する」で少し書きました。

于 2011-07-12T19:58:55.663 に答える
3

Windows 7 での手動インストールの正確な手順は次のとおりです。

まず、以下から SBCL をダウンロードしてインストールします。

http://www.sbcl.org/platform-table.html

次に、 babelalexandriatrivial-features、およびcffiをダウンロードして untar ( tar xzf ...)します。

次に、SBCL を開始し、ASDF をロードして、これらのシステムへのパスを に追加しますasdf:*central-registry*

C:\Program Files\Steel Bank Common Lisp\1.0.49>sbcl.exe --core sbcl.core
This is SBCL 1.0.49, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.

This is experimental prerelease support for the Windows platform: use
at your own risk.  "Your Kitten of Death awaits!"
* (load "asdf/asdf")

T
* (push "C:/Users/dhl/build/asdf/babel_0.3.0/" asdf:*central-registry*)

("C:/Users/dhl/build/asdf/babel_0.3.0/")
* (push "C:/Users/dhl/build/asdf/alexandria/" asdf:*central-registry*)

("C:/Users/dhl/build/asdf/alexandria/" "C:/Users/dhl/build/asdf/babel_0.3.0/")
* (push "C:/Users/dhl/build/asdf/trivial-features_0.6/" asdf:*central-registry*)

("C:/Users/dhl/build/asdf/trivial-features_0.6/"
 "C:/Users/dhl/build/asdf/alexandria/" "C:/Users/dhl/build/asdf/babel_0.3.0/")
* (push "C:/Users/dhl/build/asdf/cffi_0.10.6/" asdf:*central-registry*)

("C:/Users/dhl/build/asdf/cffi_0.10.6/"
 "C:/Users/dhl/build/asdf/trivial-features_0.6/"
 "C:/Users/dhl/build/asdf/alexandria/" "C:/Users/dhl/build/asdf/babel_0.3.0/")
*

(もちろん、`"C:/Users/dhl/..." の代わりにライブラリへのパスを指定する必要があります)

次に、CFFI をロードできます。

* (asdf:load-system 'cffi)
[much compilation output]
T
*

さて、これが Common Lisp 用のシステムをインストールするためのほとんど骨の折れる方法です。最近では、使いやすく、Xach の回答でカバーされている Quicklisp がありますまた、シンボリックリンクをサポートするプラットフォーム上の単一のディレクトリに asd ファイルをシンボリックリンクするなど、システムを asdf に登録するより良い方法があることに注意してください。ASDF 2 は機能を提供するsource-registryため、まったく対処する必要はありませんasdf:*central-registry*(私はまだREPLの使用が好きです)。

全体として、Xach の回答は、CFFI の動作するインストールを取得する最も簡単な方法を提供すると思います。そのため、私は彼の回答を推奨し、投票しますが、私は彼が投稿する前に記事を書き始めました。手動で行う方法を知る必要があります。

于 2011-07-12T20:21:44.007 に答える