19. بناء ملف مستقل
الهدف
رابط إلى قسم «الهدف»أن تبني من برنامجك ملفاً تنفيذياً واحداً تعطيه لغيرك، فيشغّله دون أن يثبّت ميم.
الشرح
رابط إلى قسم «الشرح»meem برنامج.ميترجم البرنامج ويشغّله فوراً، للتجربة.meem build برنامج.م -o برنامجيكتب ملفاً تنفيذياً:./برنامجيعمل وحده.- الملف ساكن افتراضياً: فيه مكتبة C (musl) كلها، فلا يطلب شيئاً من الجهاز. و
--dynamicيبنيه حركياً بمكتبة C للنظام (أصغر، وأسرع أحياناً في البرامج الكثيرة الحجز، لكنه يحتاج glibc على الجهاز). - وسائط البرنامج تأتي بعد
--في التشغيل المباشر (meem برنامج.م -- سلمى)، وبعد اسم الملف المبني (./برنامج سلمى).
meem build عداد.م -o عداد./عدادعند بناء هذا الموقع بُني المثال التالي فعلاً، وشُغّل الملف الناتج وحده، وطابق مخرجه مخرج التشغيل المباشر:
لكل ع في مدى(1, 4): اطبع("العدّ: ", ع)بُني أيضاً بـ meem build عند بناء الموقع: ملف ساكن حجمه 30.1 ك.ب، شُغّل وحده وطابق مخرجه المخرج أعلاه.
تمرين
رابط إلى قسم «تمرين»برنامج يحيّي الاسم الذي يُعطى له وسيطاً (نظام.وسائط())، ويطبع طريقة الاستعمال إن لم يُعطَ اسماً. ابنه ثم شغّله: ./تحية سلمى.
اعرض الحل
استورد نظامو = نظام.وسائط()اذا طول(و) == 0: اطبع("الاستعمال: تحية <اسم>")غير ذلك: اطبع("أهلاً يا ", و[0], "!")بُني أيضاً بـ meem build عند بناء الموقع: ملف ساكن حجمه 40.3 ك.ب، شُغّل وحده وطابق مخرجه المخرج أعلاه.
الأخطاء الشائعة
رابط إلى قسم «الأخطاء الشائعة»- برنامج يستدعي بـ
خارجيمكتبة C غير مكتبة C القياسية (مثل zlib) لا يُبنى ساكناً: ابنه بـ--dynamic، ولتكن المكتبة مثبَّتة على الجهاز الذي يشغّله. - الملف المبني للينكس x86_64 وحده. ويندوز وماك غير متاحين في 1.0.
اقرأ أيضاً
رابط إلى قسم «اقرأ أيضاً»البناء: meem build · خيارات سطر الأوامر