установка cffi - PullRequest
       47

установка cffi

3 голосов
/ 12 июля 2011

Я пытаюсь установить пакет cffi в sbcl.Сначала я попробовал clbuild, рекомендованный на странице установки cffi.Когда я попытался запустить:

clbuild quickload cffi

мне выдали сообщение об ошибке:

The function ASDF::SOURCE-REGISTRY is undefined.

Затем я попытался asdf-install, в итоге он жаловался на

Component "cffi-examples" not found

Любая помощь по этому вопросу будет принята.

ОБНОВЛЕНИЕ

Для asdf-установки я запускаю sbcl с slime.Кажется, что всякий раз, когда он жалуется на отсутствующий компонент, этот компонент фактически устанавливается.Мне просто нужно прервать отладчик и перезапустить Emacs, запустить slime и повторить установку, и она завершится успешно.Если я не запускаю его с помощью slime, просто запустив его в командной строке sbcl в терминале, он будет постоянно жаловаться на отсутствие компонента.

Итак, чтобы установить cffi с помощью asdf-install, мне пришлось перезапускать Emacs примерно 4-5 раз.

Я не уверен, есть ли проблемы с конфигурацией в sbcl?

Полагаю, мне следует задать этот вопрос в другой ветке.

Ответы [ 2 ]

8 голосов
/ 12 июля 2011

С Quicklisp это довольно просто. Чтобы установить Quicklisp:

  • Скачать http://beta.quicklisp.org/quicklisp.lisp
  • sbcl - загрузить quicklisp.lisp
  • (quicklisp-Quickstart: установка)
  • (QL: добавить к инициализации-файла)

Затем вы можете установить и загрузить CFFI следующим образом:

  • (ql: quickload "cffi")

Я написал немного о том, как я управляю небольшими проектами и их необходимыми библиотеками на Создание небольшого проекта на Лиспе с помощью quickproject и Quicklisp .

3 голосов
/ 13 июля 2011

Вот точные шаги для ручной установки под Windows 7:

Сначала загрузите и установите SBCL из:

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

Затем загрузите и распакуйте (tar xzf ...) babel , alexandria , trivial-features и cffi .

Затем запустите 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. В настоящее время существует Quicklisp , который прост в использовании и покрыт ответом Xach. Также обратите внимание, что существуют более эффективные способы регистрации ваших систем в asdf, такие как символическая ссылка asd-файлов в один каталог на платформах, поддерживающих символическую ссылку, а ASDF 2 предоставляет средство source-registry, поэтому вам не придется иметь дело с asdf:*central-registry* вообще (мне все еще нравится использовать REPL).

В целом, я думаю, что ответ Xach обеспечивает самый простой способ получить работающую установку CFFI, поэтому я рекомендую его ответ и проголосую, но я уже начал писать свою статью до того, как он ее опубликовал, и, возможно, ее некоторые полезны для вас, чтобы знать, как делать вещи вручную.

...