بنية X64 - 64 Bit و استعمال Lazarus
#1
السلام عليكم و رحمة الله
كل من جرب استعمال بيئة التطوير Lazarus التي تستعمل Free pascal compilerاصيب بصدمة كبيرة عند ملاحظة ان مشروع فارغ ينتج ملف تنفيذي كبير الحجم، اكثر من 10MB بكثير، و بعد البحث في منتدى بيئة التطوير حصلت على الاجابة الشافية من مطوري البيئة...

طريقة تقليص الحجم :
كود :
1. Project|Compiler Options|Code|Smart Linkable (-CX) -> Checked 2. Project|Compiler Options|Linking|Debugging|Display Line Numbers in Run-time ErrorBacktraces (-gl) -> Unchecked 3. Project|Compiler Options|Linking|Debugging|Strip Symbols From Executable (-Xs) -> Checked 4. Project|Compiler Options|Linking|Link Style|Link Smart (-XX) -> Checked

الطريقة مجربة و تعمل دون مشاكل... على x86-32bit و x64-64bit

ملاحظة بيئة التطوير قيد التطوير و هي الوسيلة الوحيدة لعمل تطبيقات x64 او multi platformالى ان نرى اصدار دلفي يدعم بيئة x64 في المستقبل القريب...

بالتوفيق ان شاء الله
الرد
#2
نعم حدث معي نفس المشكل
شكرا لك على الموضوع
الرد
#3
أهم نقطة كما جاء المصدر هي:
كود :
3. Project|Compiler Options|Linking|Debugging|Strip Symbols From Executable (-Xs) -> Checked
طبعا مع التأكد من عدم إدراج أي معلومات Debugging في الملف الناتج:
كود :
Project|Compiler Options|Linking|Debugging| Uncheck all except Strip Symbols From Executable (-Xs) -> Checked
ذلك لأن الـ Debugger صاحب أكبر قسط من حجم الناتج بإضافته إلى Debug Information
غير أنك ستخسر خاصية التتبع خطوة خطوة مع نقاط توقف (Debugging)
نفس النتيجة يمكن الحصول عليها باستخدام الأداة المرفقة:
كود :
lazarus\fpc\2.4.2\bin\i386-win32\strip.exe
الاستخدام:
PHP كود :
strip --strip-all <your executable file with path> 
بهذا يصبح حجم تطبيق فارغ 1.55 Mb دون ضغط (بعد UPX يصبح 500 تقريبا) في الإصدار 0.9.30 حاليا
أشياء أخرى يمكن اختزالها لتقليص الحجم:
كود :
XML handling library Image handling library for png, xpm, bmp and ico files Almost all widgets from the Lazarus Component Library All of the Free Pascal Runtime Library

المصدر:
كود :
http://wiki.lazarus.freepascal.org/Lazarus_Faq#Why_are_the_generated_binaries_so_big.3F
بالتوفيق.
الرد
#4
لتقليص حجم الملف التنفيذي الناتج بعد البناء ببرنامج lazarus

مثلا لدينا التطبيق (poject1.exe) الذي حجمه 12.3 ميغا في الدليل التالي (C:\laz38\poject1.exe)
*نفتح موجة الاوامر الدوس ونبحث عن ملف (strip.exe) الموجود في الدليل (C:\lazarus\fpc\2.4.2\bin\i386-win32)
ونكتب العبارة التالية(C:\lazarus\fpc\2.4.2\bin\i386-win32\strip c:\laz38\project1.exe
ثم Enter
فيتم تقليص حجم الملف الى 1.55 ميغا بعد ان كان 12.3 ميغا
وشكرا
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم