Как установить lisp sdl в Windows 10 (Невозможно загрузить стороннюю библиотеку (LIBSDL2). Ошибка при открытии общего объекта SDL2.dll :)

Я всегда получаю сообщение об ошибке, что sdl2.dll не может быть найден. Я пытался установить cffi перед установкой lispbuilder-sdl, и cffi был успешно установлен, но sdl всегда терпит неудачу с такой ошибкой, кто-нибудь может помочь?

    [package json]....................................
[package json-rpc]................................
[package cl-ppcre]................................
..................................................
[package autowrap]................................
[package autowrap.minimal]........................
..................................................
[package plus-c]..................................
[package bordeaux-threads]........................
[package com.metabang.trivial-timeout]............
[package trivial-channels.queue]..................
[package trivial-channels]........................
[package sdl2-ffi]................................
[package sdl2-ffi.accessors]......................
[package sdl2-ffi.functions]......................
[package sdl2]....................................
[package sdl2-examples]
debugger invoked on a CFFI:LOAD-FOREIGN-LIBRARY-ERROR in thread
#<THREAD "main thread" RUNNING {10029A49E3}>:
  Unable to load foreign library (LIBSDL2).
  Error opening shared object "SDL2.dll":
 The specified module could not be found.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Try loading the foreign library again.
  1: [USE-VALUE                    ] Use another library instead.
  2: [TRY-RECOMPILING              ] Recompile library and try loading it again
  3: [RETRY                        ] Retry
                                     loading FASL for #<CL-SOURCE-FILE "sdl2" "library">.
  4: [ACCEPT                       ] Continue, treating
                                     loading FASL for #<CL-SOURCE-FILE "sdl2" "library">
                                     as having been successful.
  5:                                 Retry ASDF operation.
  6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
  7: [ABORT                        ] Give up on "sdl2"
  8:                                 Exit debugger, returning to top level.

person Mykyta Smirnov    schedule 31.05.2016    source источник
comment
Связано: stackoverflow.com/q/22213133/124319   -  person coredump    schedule 31.05.2016
comment
Я не использую Cygwin. Как я могу сделать это без него?   -  person Mykyta Smirnov    schedule 31.05.2016
comment
Где находится ваша sdl2.dll? Я просто всегда помещал его в локальный каталог, откуда я загружаю файлы, и, кажется, его находили.   -  person Greg Buchholz    schedule 31.05.2016
comment
Я поместил его в свой домашний каталог, и он был найден, но теперь у меня другая ошибка.   -  person Mykyta Smirnov    schedule 31.05.2016
comment
Вызов по значению еще не реализован для AUTOWRAP::C-MALLOC   -  person Mykyta Smirnov    schedule 31.05.2016
comment
Связанный ответ здесь: stackoverflow.com/questions/53270538/   -  person user1026169    schedule 13.11.2018


Ответы (1)


Sketch — это библиотека для обычного lisp с использованием sdl2 и opengl. работать с этим на окнах

Библиотеки

Загрузите dll SDL2, SDL2_IMAGE и SDL2_TTF с веб-страницы libsdl и скопируйте их туда, где Windows может их найти — \Windows\System32 будет работать. При копировании SDL2_TTF убедитесь, что скопированы все dll из архива, а не только TTF.

Теперь вам нужно получить libffi dll. Одним из способов сделать это является компиляция из исходного кода, но для быстрого и простого решения вы можете просто найти надежный источник и использовать его версию. Например, если вы используете Emacs в Windows, вы можете найти libffi-6.dll в emacs\bin. Скопируйте его в тот же каталог, в который вы ранее скопировали библиотеки sdl2.

Также хорошей библиотекой является cepl.

и имеет следующую рекомендацию:

https://github.com/cbaggers/cepl/blob/master/README.md#windows-c-library-hack

Если у вас возникли проблемы с загрузкой библиотек c и вам просто нужно исключить, может ли lisp их найти, попробуйте поместить их в ту же папку, что и исполняемый файл lisp. Например, C:\Program Files\sbcl.

person anquegi    schedule 02.06.2016