Wednesday, June 30, 2010

Dynamic Building for Qt Apps on Windows


قبل التحدث عن كيفية بناء مشروع Qt , أريد أن أوضح الفرق بين شيئين: Debug & Release

Debug Version : يحتوي البرنامج الناتج على بعض الإضافات التي تساعد في عملية الـdebugging مثل مراقبة المتغيرات داخل البرنامج و معرفة أي خطوة داخل البرنامج يتم تنفيذها الآن.


Release Version : يحدث شيء مختلف هنا و هو Code Optimization. أي قد تتم بعض التعديلات على الكود الخاص بك للزيادة من سرعة البرنامج أو توفيرا للذاكرة المستخدمة أو..... (للمزيد) . نتيجة لذلك يكون البرنامج أكثر سرعة من الـDebug Version و أقل حجما و لكن قد تلاحظ  بعض المشكلات نتيجة لعملية الـoptimization فيجب التأكد من ذلك بإعادة تجربة البرنامج بعد بنائه كـ release version .

طريقة البناء في Qt :

1-      قم باختيار  Build -> Set Build Configuration -> Release
(أو Build -> Open Build/Run Target Selector -> Desktop -> Release في إصدارة Nokia Qt SDK 1.0.1 )

2-      قم بالبناء من خلال Build -> Build Project

3-      الآن تجد البرنامج الناتج في مجلد Release داخل مجلد المشروع. و لكنه لن يعمل بعد

4-      الآن هناك بعض الـDLLs التي يجب وضعها بجانب البرنامج كي يعمل. سوف نأخذ نسخة منها من مجلد Qt . على سبيل المثال: المجلد الذي سآخذ منه هو C:\Qt\2010.01\qt\bin (قد يختلف قليلا حسب الإصدار أو مكان تثبيت Qt )

الملفات التي سآخذها أولا هي:
libgcc_s_dw2-1.dll
mingwm10.dll
QtCore4.dll

هناك بعض الملفات الإضافية التي آخذها حسب الـModules التي اخترتها عند إنشائي للمشروع. فمثلا إذا كان مشروعي قد استخدم GUI Module فسأحتاج لـ QtGui4.dll, و إذا استخدمت XML Module فسأحتاج إلى QtXml4.dll .... و هكذا. لابد من ملاحظة شيء مهم وهو أن هناك ملفات باسم مشابه و لكن مضاف إليها حرف d مثل QtCored4.dll و QtGuid4.dll .. و هي خاصة بالـdebug version فلا يجب أن نخلط بينهم (الملفات الخاصة بالـDebug أكبر في الحجم من الـRelease عدة مرات).


كل هذه الملفات أضعها بجانب البرنامج في نفس المجلد لأضمن عمله على أي جهاز.

هناك طريقة أخرى لجمع هذه الملفات بداخل البرنامج تسمى Static Building, و سأتحدث عنها لاحقا إن شاء الله.

No comments:

Post a Comment