سؤال

نظرا برنامج بسيط مثل التالية ، كيف:

  1. تجميع أنها منفصلة صورة الملف ليتم تحميلها من خلال تنفيذ ما وسيطات سطر الأوامر يمكنك استخدام لتحميله ؟

  2. تجميع بذاتها الثنائية التي يمكن تحميلها و تشغيلها كما هو.

    ملاحظة:حاولت مضيفا ":prepend-نواة t" عند حفظ التطبيق إلا أن يكون الخطأ اتبع القيت.

    Error: value NIL is not of the
    expected type REAL. While executing: 
    CCL::<-2, in process Initial(0).
    
  3. كيف تقمع الترحيب الرسالة ؟

    البرنامج

    (defun main ()
      (format t "This is the program.")0)
    

تحرير

أكره أن الإجابة على جزء من سؤالي, ولكن وجدت أنه لا شيء أقل.

بعد وظيفة تم تحميل اكتب ما يلي ترجمة ذلك:

(ccl:save-application "app")

يؤدي هذا إلى إنشاء ملف صورة.لتحميله عن طريق تمرير إلى تنفيذ نوع (ملاحظة:في 'المركز' الثنائية في مسار النظام);

ccl -I app

لتشغيل أعلى مستوى وظيفة تمر كمعلمة

ccl -I app --eval (main)
هل كانت مفيدة؟

المحلول

ترى Clozure Common Lisp الوثائق تحت توفير التطبيقات

تجميع و تحميل اللثغة الملفات

يمكنك تجميع ملف اسمه /foo/bar.lisp من خلال الدعوة

 (compile-file "/foo/bar.lisp")

وهذا خلق fasl (تحميل سريع) الملف الذي يحتوي على التعليمات البرمجية الأصلية.

يمكنك تحميل الملف تم تجميعها ، fasl الملف مع وظيفة LOAD. LOAD و COMPILE-FILE هي المعيار Common Lisp وظائف.

إنشاء تطبيقات

بعض التعاريف:

  • CCL النواة:جزء من CCL التي توفر مستوى منخفض أوقات التشغيل خدمات مثل إدارة الذاكرة.
  • صورة:حفظ تفريغ اللثغة كومة
  • التطبيق:CCL النواة + صورة.هذا يمكن أن يكون في ملف واحد.

يمكنك حفظ الطلب عن طريق الاتصال CCL وظيفة محددة:

(save-application "/foo/bar-image" :toplevel-function #'main)

هذا سيوفر صورة, التي يمكن تشغيلها باستخدام CCL نواة من قذيفة القيادة:

ccl -I /foo/bar-image

حفظ تنفيذي يتضمن نواة استخدام هذه اللثغة:

(save-application "/foo/bar-app"
                  :toplevel-function #'main
                  :prepend-kernel t)

يمكنك استدعاء هذا الملف القابل للتنفيذ كالعادة مع /foo/bar-app من الأوامر قذيفة.

في Clozure Common Lisp يمكنك التحقق

*command-line-argument-list*

للحصول على قائمة من توفير وسيطات سطر الأوامر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top