3

我一直在用 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 下。但是它仍然抱怨找不到框架。对此有任何想法吗?

4

3 回答 3

2

在 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 时。可可位必须在主线程上运行,因此您必须调用如下内容:

#+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))))
于 2012-05-20T13:27:49.357 回答
0

该错误抱怨它无法加载 SDL 的动态库。对不起 - 我对 mac 上的目录布局知之甚少(这似乎是你工作的地方),所以我不能确切地告诉你如何解决这个问题。但是你应该在某个地方安装了一个名为 libSDL_gfx.dylib 的文件(可能是这个扩展名),错误消息意味着 CFFI 找不到它。

于 2011-07-18T18:02:26.997 回答
0

使用自制软件,您可以brew install sdl_gfx

于 2012-08-25T03:23:41.360 回答