В чем причина ошибки "несвязанная переменная" в этой программе схемы SDL2? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть следующая программа, написанная на Chicken Scheme:

(cond-expand
 (chicken-4 (use (prefix sdl2 "sdl2:")))
 (chicken-5 (import (prefix sdl2 "sdl2:"))))

(sdl2:set-main-ready!)
(sdl2:init! '(video))
(define window (sdl2:create-window! "Hello, World!" 0 0 600 400))
(sdl2:fill-rect! (sdl2:window-surface window)
                 #f
                 (sdl2:make-color 0 128 255))
(sdl2:update-window-surface! window)
(sdl2:delay! 3000)
(sdl2:quit!)

Это просто пример , представленный в официальном репозитории Chicken Scheme SDL2 . Поэтому я считаю, что код должен быть действительным.

Тем не менее, он вызывает ошибку, как показано ниже:

(sdl2:quit!)

=> Error: (#f) "unbound variable": (sdl2:quit!)
Call history: 
<eval>   (geiser#geiser-eval (quote #f) (quote (sdl2:quit!)))
<eval>   (write-to-log form)
<eval>   (geiser-chicken-use-debug-log)
<eval>   (call-with-result thunk

1 Ответ

1 голос
/ 09 июля 2020

Я только что это протестировал, и он работает без ошибок, как в интерпретаторе, так и при компиляции. Я пробовал в CHICKEN 4 и в CHICKEN 5.

Вы уверены, что у вас установлена ​​последняя версия sdl2? Попробуйте chicken-status sdl2, он должен напечатать версию 0.3.0.

Если все в порядке, может, с Гейзером происходит что-то странное, я не использую.

...