में चल रहे एक शेबैंग स्क्रिप्ट बनाम लिस्प के रूप में लिस्प मैंने सी ++ और पायथन से आने वाले सामान्य-लिस्प के साथ शुरू किया। मैं एक साधारण एसडीएल प्रोग्राम चलाने की कोशिश कर रहा हूं जो स्क्रीन पर एक छवि दिखाने के अलावा कुछ भी नहीं करता है। मैं इसे एसएलईएमई के भीतर से काम कर सकता हूं। समस्या यह है कि, जब स्क्रिप्ट से स्क्रिप्ट के रूप में चलाया जाता है तो यह काम नहीं करेगा।एसआईएलएमई
मेरे कार्यक्रम इस प्रकार है:
#!/usr/bin/sbcl --script
(asdf:operate 'asdf:load-op :lispbuilder-sdl)
(defun main()
(sdl:with-init()
(sdl:window 320 240)
(sdl:draw-surface (sdl:load-image "image.png"))
(sdl:update-display)
(sdl:with-events()
(:quit-event() t)
(:video-expose-event() (sdl:update-display)))))
(main)
जब मैं एक स्क्रिप्ट के रूप में इस चलाने के लिए, मैं निम्नलिखित त्रुटि मिलती है:
[email protected]:~/projects/common-lisp/sandbox$ ./hello-world.lisp
unhandled ASDF:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "initial thread" RUNNING {AA5E849}>:
component "lispbuilder-sdl" not found
0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA #) {AAF1EF5}>)[:EXTERNAL]
(... लंबे पश्व-अनुरेखन छोड़े गए)
विचित्र रूप से, यदि मैं निम्नलिखित करता हूं तो यह प्रोग्राम ठीक काम करता है। मैं खोलने Emacs में कार्यक्रम, अन्य विंडो में कीचड़ प्रारंभ करें, और कीचड़ विंडो में, मैं इस कार्यक्रम की पहली पंक्ति दर्ज करें:
(asdf:operate 'asdf:load-op :lispbuilder-sdl)
फिर, संपादक विंडो में, मैं प्रतिलिपि Ck (संकलन/लोड मारा फ़ाइल)। यह अपेक्षित के रूप में image.png दिखा रहा एक खिड़की पॉप अप करता है।
शेबैंग स्क्रिप्ट के रूप में चलाने पर यह क्यों काम नहीं करता है? मेरे द्वारा यह कैसे किया जा सकता है?