Установите GSLL на SBCL с помощью Quicklisp

Я пытаюсь установить научную библиотеку GNU для Lisp (GSLL). Я видел, что на подобный вопрос уже есть ответы, но не нашел связи с тем, что происходит в моем случае.

Может ли кто-нибудь помочь двигаться дальше?

CL-USER> (lisp-implementation-type)
"SBCL"
CL-USER> (lisp-implementation-version)
"1.2.4.debian"

CL-USER> (ql:quickload "gsll")

; cc -m64 -I/lrde/home/alandi/quicklisp/dists/quicklisp/software/cffi_0.14.0/ -o /lrde/home/alandi/.cache/common-lisp/sbcl-1.2.4.debian-linux-x64/lrde/home/alandi/quicklisp/dists/quicklisp/software/cffi_0.14.0/libffi/libffi-unix /lrde/home/alandi/.cache/common-lisp/sbcl-1.2.4.debian-linux-x64/lrde/home/alandi/quicklisp/dists/quicklisp/software/cffi_0.14.0/libffi/libffi-unix.c
; 

; compilation unit aborted
;   caught 2 fatal ERROR conditions

To load "gsll":
  Load 8 ASDF systems:
    alexandria antik asdf-system-connections cffi-grovel
    cffi-libffi metabang-bind osicat trivial-garbage

  Install 1 Quicklisp gsll
    release:
; Loading "gsll"

; cc -m64 -I/lrde/home/alandi/quicklisp/dists/quicklisp/software/cffi_0.14.0/ -o /lrde/home/alandi/.cache/common-lisp/sbcl-1.2.4.debian-linux-x64/lrde/home/alandi/quicklisp/dists/quicklisp/software/cffi_0.14.0/libffi/libffi-unix /lrde/home/alandi/.cache/common-lisp/sbcl-1.2.4.debian-linux-x64/lrde/home/alandi/quicklisp/dists/quicklisp/software/cffi_0.14.0/libffi/libffi-unix.c

; 
; compilation unit aborted
;   caught 2 fatal ERROR conditions
; Evaluation aborted on Component "gsll" not found.

person Danny Zuko    schedule 24.02.2015    source источник
comment
Это очень похоже на то, что у вас проблема с компиляцией C. Попробуйте запустить команду cc -m64 ... в командной строке и вставьте ее в описание ошибки. Мое невинное предположение заключается в том, что вам не хватает некоторой зависимости C (библиотеки и/или заголовков) для компиляции.   -  person schaueho    schedule 24.02.2015


Ответы (1)


Я на OS X, но, возможно, это вам все равно поможет. Я мог загрузить библиотеку (ql:quickload "gsll"), но мне пришлось внести коррективы:

Путь к динамическим библиотекам GSL находится с помощью вызова оболочки gsl-config --prefix.

Для меня этот вызов возвращает /usr/local/Cellar/gsl/1.16, но мои dynlibs находятся в /usr/local/Cellar/gsl/1.16/lib. Поэтому мне просто нужно было внести некоторые коррективы в имена путей в файле ~/quicklisp/dists/quicklisp/software/gsll-20140211-git/init/init.lisp.

Найдите (cffi:define-foreign-library libgslcblas ...) и (cffi:define-foreign-library libgsl ...) и настройте там свои пути.

Может быть, это помогает.

person Frank Zalkow    schedule 24.02.2015
comment
Спасибо, Фрэнк. Вот оно. - person Joe; 10.02.2016