common-lisp - 无法在 quicklisp 中加载 sdl-gfx

标签 common-lisp sdl quicklisp

我一直在使用 quicklisp 安装 lispbuilder-sdl 系列,但在 sdl-gfx 中遇到错误:

CL-USER> (ql:quickload "lispbuilder-sdl-gfx")
To load "lispbuilder-sdl-gfx":                                                  
  Load 1 ASDF system:                                                           
    lispbuilder-sdl-gfx                                                         
; Loading "lispbuilder-sdl-gfx"                                                 
...........;                                                                    
           ; compilation unit aborted                                           
           ;   caught 1 fatal ERROR condition  

Unable to load any of the alternatives:                                         
   ("libSDL_gfx.dylib" (:FRAMEWORK "SDL_gfx"))
   [Condition of type CFFI:LOAD-FOREIGN-LIBRARY-ERROR]

我在macosx 10.6下使用slime+emacs+SBCL。我已经通过此链接安装了 SDL.framework:

http://thirdcog.eu/apps/frameworks#glew

一个名为 sdl_with_friends.zip 的文件,将其放在/Library/Frameworks 下。但是它仍然提示找不到框架。 对此有什么想法吗?

最佳答案

在 Mac OSX 上安装 lispbuilder-sdl 的最简单方法是启动 SBCL 并使用 Quicklisp:

(ql:quickload "lispbuilder-sdl")

它可能会失败,但您可以随后编译位于“~quicklisp/dists/quicklisp/software/lispbuilder-20110619-svn/lispbuilder-sdl/cocoahelper”中的 OS-X 特定帮助程序库;只需 cd 到该目录并输入“make”

要验证是否有效,请尝试以下操作:

(ql:quickload "lispbuilder-sdl-examples")
(lispbuilder-sdl-examples:bezier)

另一个常见问题是当您使用 Emacs/SLIME 时。 cocoa bits 必须在主线程上运行,所以你必须调用这样的东西:

#+darwin #+sb-thread
(let ((thread (first (last (sb-thread:list-all-threads)))))
  (sb-thread:interrupt-thread thread #'(lambda () (ql:quickload "lispbuilder-sdl-examples")))
  (sb-thread:interrupt-thread thread #'(lambda () (lispbuilder-sdl-examples:bezier))))

关于common-lisp - 无法在 quicklisp 中加载 sdl-gfx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714714/

相关文章:

c++ - 当前版本的 mingw64 是否与 SDL 库不兼容?以前没有的编译器错误

lisp - Quicklisp:存档大小错误

c++ - 编译包装器时出现 SWIG [C++ to Lisp(CFFI)] 错误

lisp - 阅读和理解 Common Lisp (HyperSpec) 文档

java - Common Lisp 波尔多线程锁相当于 Java 同步吗?

types - 'and' 类型说明符不应该短路吗?

c++ - SDL 运行时二进制文件,它们有什么用?

c++ - 使用 C++、SDL、OpenGL 和 GLEW 时出现无法解释的内存错误

ssl - "Unable to load any of the alternatives"使用 Quicklisp 安装 CL+SSL 即使在安装 open ssl 之后

lisp - 如何在 Windows 10 中安装 lisp sdl(无法加载外部库(LIBSDL2)。打开共享对象时出错 "SDL2.dll":)