我一直在使用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下。然而它仍然抱怨找不到框架。 对此有何想法?
答案 0 :(得分:2)
在Mac OSX上安装lispbuilder-sdl的最简单方法是启动SBCL并使用Quicklisp:
(ql:quickload "lispbuilder-sdl")
它可能会失败,但您可以编译位于“~swlylisp / 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))))
答案 1 :(得分:0)
错误是抱怨它无法加载SDL的动态库。对不起 - 我不太了解mac上的目录布局(这似乎是你工作的地方),所以我不能确切地告诉你如何解决这个问题。但是你应该安装一个名为libSDL_gfx.dylib的文件(可能是这个扩展名),错误信息意味着CFFI无法找到它。
答案 2 :(得分:0)
使用自制软件,您可以brew install sdl_gfx