كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

يتناول القسم لغتي سي و سي++ ، بالأضافه الى تناول المكتبات المستخدمه مع هاتين اللغتين وخاصه مكتبه Qt المستخدمه لكتابه برامج مرئيه متعددة المنصات بسي++

كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة Wajdy Essam » الأحد فبراير 08, 2009 3:53 pm

السلام عليكم ورحمه الله وبركاته ،،

لاحظت أن هناك خمول في متابعه البرامج التي يكتبها الشباب هنا في القسم ، وعلى ما أظن السبب هو أن أغلب البرامج هنا لا تعمل في مترجمات سي++ القديمه مثل تربو سي++ ، وبولارند سي++ .. لذلك قمت بكتابه هذا الموضوع لغرض توضيح كيفيه استخدام الحزمه MinGW مع الIDE مثل DEV-C++ 5 ، وكتابه وتنفيذ برامج سي++ قياسيه بقدر الإمكان .

أول نصيحه نضعها للطلاب وهي عدم أستخدام المترجم تربو سي++ . بسبب أنه أكل عليه الدهر وشرب فقد تم اصداره من حوالى 15 سنه أو أكثر .. وقد حصل الكثير من التطويرات في تلك الفتره على اللغه وتم اضافه مكتبه STL والتي لم تكن موجوده في اصدار تربو القديم ..

في هذه المقاله ، سنوضح كيفيه تنصيب وكتابه برامج باستخدام هذه الحزمه ، خطوه بخطوه حتى يستفيد منها الأخوه الجدد على اللغه وعلى هذه البرامج أبضا .


قبل أن نبدأ نحب أن نوضح أن :
Text Editor تعني محرر نصوص عادي ، مثل notepad أو wordpad أو أي محرر نصوص لا يستخدم أي تنسيق .
IDE اختصارا Integerated Development Environment وتعني بيئه تطوير مدمجه ، أي تحتوي على محرر نصوص + مترجم + منقح Debugger .
Compiler مترجم وهو برنامج يترجم من لغه الى أخرى (مثلا من سي++ الى لغه الأله) .

حاليا نحن جميع برامجنا سنترجمها باستخدام المترجم G++ (برامج سي++) و GCC (برامج سي) وهذه المترجمات هي مترجمات موجوده في نظام لينوكس .. وفي ويندوز تستطيع استخدامها من خلال الحزمه MinGW (أي ان الحزمه تحتوي على هذه المترجمات بالاضافه لبرامج أخرى مثل profiler) .

والتعامل مع هذه المترجمات يتطلب أنك تكتب الكود في محرر نصوص ، ثم ترجمه هذه الكود من خلال سطر الأوامر ، أي أنك ستكتب الأمر g++ في نافذه محث الأوامر Command Prompt مثل MS-DOS . وبالطبع الكثير قد لا يفضل مثل هذه العمليه بسبب الكسل ، لذلك يستخدم الIDE (وهي كل تحتوي على شيء) فقط تقوم بالضغط على زر ترجمه للترجمه والضغط على زر التنفيذ للتنفيذ وهكذا .. للمزيد : ما وراء الكواليس C++ In ، الجزء الأول

لذلك لديك خيارين :
1) التعامل مباشره مع الIDE وهي تأتي بكل شيء (محرر نصوص + مترجم )
2) التعامل مع محرر نصوص بالاضافه الى المترجم بالاضافه الى تنفيذ البرامج من خلال سطر الأوامر .

سنبدأ بالاول وهو الأسهل وهو التعامل مع الIDE ، وحقيقه هناك الكثير من الIDE الجيده وأفضلهم الDEV-C++ و CodeBlock وكلاهم يستخدمان الحزمه MinGW للترجمه ، نبدأ الأن بخطوات تحميل وتنفيذ البرنامج باستخدام
DEV-C++ .



الخطوه الأولى : تحميل الDEV :
http://prdownloads.sourceforge.net/dev- ... pp4980.exe

اذا لم يكن لديك برنامج للتحميل مثل Intenet Download Manager ، فسوف تظهر لك الصوره التاليه ، واختر أي مكان للتحميل :
صورة

ثم أختر Save :
صورة

حدد مكان التحميل :
صورة

وانتظر الى أن ينتهي التحميل :
صورة

الخطوه الثانيه / تنصيب الDEV :
صورة

ثم أختر موافق :
صورة

وأختر موافق على الإتفاقيه (رخصه GPL ):
صورة

حدد مكان التنصييب ويفضل الأفتراضي (وليس كما في الصوره) :
صورة

أنتظر قليلا :
صورة

وأختر close في النهايه :
صورة

الخطوه الثالثه : تهيئه الIDE :
أختر اللغه :
صورة

من نافذه الخيارات :
صورة

ضع صح على التعامل مع الException :
صورة

وصح على توليد معلومات الdebugger لكي تستخدمه فيما بعد إن أردت :
صورة

الخطوه الرابعه : كتابه وترجمه وربط وتنفيذ البرنامج :
قم بعمل مشروع جديد :
صورة

قم بعمل مشروع خالي :
صورة

قم بعمل مجلد جديد لكي تضع به المشروع :
صورة

قم بحفظ المشروع في المجلد :
صورة

الأن أنشىء ملف جديد (تستطيع انشائه من قائمه ملف أو بنفس الطريقه في الصوره التاليه) :
صورة

قم بعمل حفظ للملف :
صورة

قم بكتابه برنامجك :
صورة

قم بعمل ترجمه للبرنامج :
صورة

في حال انتهت ولم تخرج أخطاء :
صورة

في الأسفل ستجد معلومات عن استخدام المترجم :
صورة

الأن قم بعمل تنفيذ للبرنامج :
صورة

في حال أختفى المخرج بسرعه ، فقم بوضع أمر توقف وليكن :
CODE: تحديد الكل
cin.get();

أنظر هنا : أفضل طريقة لـ(( تثبيت الشاشة))

أو يمكنك عمل نقطه توقف في أخر البرنامج بالضغط على يسار السطر كما في الصوره :
صورة

وقم بتنفيذ البرنامج من خلال المنقح Debugger :
صورة

الأن سيظهر المحرج ولن يختفى ، لأنه متوقف في نقطه معينه :
صورة

وسيتنفذ البرنامج الى أن ينتقل لهذه الخطوه ، ثم اضغط على continue للتحرك مره أخرى :
صورة

لا تنسوا أن المكتبه iostream.h أصبحت ملغيه ، وأنك سوف تستخدم iostream بالاضافه الى using namespace std ، للمزيد : الفرق بين iostream.h و iostream .

سنكمل بعد قليل في كيفيه استخدام الMinGW مباشره من غير IDE لمن يريد ذلك ،،
صورة

صورة

حَسْبِيَ اللّهُ لا إِلَهَ إِلاَّ هُوَ عَلَيْهِ تَوَكَّلْتُ وَهُوَ رَبُّ الْعَرْشِ الْعَظِيمِ
Wajdy Essam
طالب فعال
طالب فعال
 
مشاركات: 784
اشترك في: الاثنين إبريل 21, 2008 12:43 am
الجامعة: Neelain
المستوى الدراسي: Graduate
التخصص: Computer Science

Re: كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة CStyle » الاثنين فبراير 23, 2009 1:26 am

جزيت خيراً أخي رومنسي على المجهود وكلامك في محله عندما قلت :
أول نصيحه نضعها للطلاب وهي عدم أستخدام المترجم تربو سي++ . بسبب أنه أكل عليه الدهر وشرب فقد تم اصداره من حوالى 15 سنه أو أكثر .. وقد حصل الكثير من التطويرات في تلك الفتره على اللغه وتم اضافه مكتبه STL والتي لم تكن موجوده في اصدار تربو القديم ..

وللأسف أغلب الطلاب يظنون أن البورلاند سي هو لغة السي نفسها وهذا خطأ إنما هو مجرد IDE لمترجم بورلاند وتكلمنا في هذا الموضوع من قبل لذا لاداعي لزيادة الحديث.

على العموم هناك إصدار أحدث من البيئة التطويرية Dev-C++ في هذا الرابط لمن يهمه الأمر :
Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2
التحميل من :
SourceForge

وأجمل مافي البرنامج هو أنه يستخدم شيء يسمى الPackages (وهو عبارة عن مكتبة تطوير لغرض معين تكون على شكل ملف تثبيت) بحيث مثلا إذا إحتجت لدوال تقوم بالتشفير فما عليك إلا الذهاب للموقع http://devpaks.org/ والدخول إلى قسم التشفير Cryptography وتحميل ال Package المناسبة وبعد مجرد التحميل والضغط مرتين عليها يتم تثبيت مكتبة الدوال التي قمت بتحميلها ويمكنك مباشرة إستعمالها في برنامجك من دون عمل أي إضافات أو تغييرات وطبعا تلك الPackage يجب قراءة ملف ال README لمعرفة الدوال التي تحتويها وطريقة إستعمالها في برنامجك
وإليكم أقسام الPackages كما في الموقع :
CODE: تحديد الكل
    * 2d Graphics
    * 3d Graphics
    * Allegro
    * Animation
    * Audio
    * C++ Libraries
    * Compression
    * Cryptography
    * Database
    * DirectX
    * Documentation
    * File
    * GTK
    * GUI
    * HGE
    * Image Manipulation
    * Logging
    * Mathematics
    * MinGW
    * Networking
    * OpenGL
    * PDF
    * POSIX
    * Scripting
    * SDL
    * Shockwave Flash
    * String Manipulation
    * Text console
    * Threading
    * Utilities
    * Video
    * wxWidgets
    * XML

أظن أن الفكرة وضحت وإذا إستصعب عليكم شي يمكن أن تراسلوني من خلال الموقع
CStyle
طالب نشيط
طالب نشيط
 
مشاركات: 97
اشترك في: الاثنين إبريل 21, 2008 12:47 pm
الجامعة: الخرطوم
المستوى الدراسي: Out Of School
التخصص: علوم حاسوب

Re: كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة the.matrix.sdn » الاثنين إبريل 06, 2009 8:07 pm

الشكر موصول لكم جميعا - و خاصة الأخ رومانسي - على الموضوع المهم و الشرح الشيق و التعقيب المفيد ...

طبعا في الجامعة متعودين نشتغل على البورلاند و عندي في البيت جربت و اشتغلت على الفجوال و مشى الحال .
الآن بعد ما قرأت الموضوع نزلت البرنامج و اشتغلت عليه و بصراحه شكله غريب شوية و خاصة رسائل الخطأ به عند الترجمة ، بس إن شاء الله شوية شوية الواحد يتعود عليه ....
شكرا مرة أخرى مع تحياتي.
the.matrix.sdn
طالب جديد
طالب جديد
 
مشاركات: 2
اشترك في: السبت مارس 07, 2009 9:32 pm
الجامعة: الأهلية
المستوى الدراسي: خريج 3 سنوات
التخصص: علوم حاسوب

Re: كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة moh638 » السبت مارس 13, 2010 5:34 pm

السلام عليكم :)

شكرا اخ Wajdy Essam على الموضوع الرائع

لم اجرب المترجم بعد 8-)
المهم :

لقد وجدت مترجم في اوبنتو ا اسمه codelite فهل لي بشرح لهذا المترجم :?: وهل يحتاج لحزم لكي يعمل :?: ما هي :?:

ايضا هل يوجد مترجم اخر في نظام اوبنتوا ؟


شكرا جزيلا والسلا م عليكم
صورة العضو الشخصية
moh638
طالب نشيط
طالب نشيط
 
مشاركات: 30
اشترك في: السبت أكتوبر 31, 2009 6:43 pm
الجامعة: الإمام الهادي
المستوى الدراسي: الثالث
التخصص: IT

Re: كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة abdu247 » الثلاثاء مارس 16, 2010 1:33 am

سلام شباب
فى البداية يا اخى وجدى موضوعك جميل وفعلا عالج مشكلة منتشره فى جامعاتنا
بس موقع sourceforge.net حاظر السودان والاخوة الأعضاء لن يتمكنوا من تحميل البرنامج
وبعدين انت كيف تنسى الeclipse(my fav IDE) :D

الاخ moh

codelite هو IDE وليس مترجم وهو لا يحتاج الى حزم اضافيه (غير حزم البرنامج نفسها مثل حزم الواجهات الرسومية وهذه يقوم synaptic بتحميلها عوضا عنك)
اذا كنت تقصد وجود مترجمات اخرى فنعم يوجد عدد من المترجمات تعمل على لينكس ولكن gcc هو الافضل
واذا كنت تقصد IDE فنعم يوجد العديد منها والافضل eclipse,codeblocks,monodevelop
وانا انصحك بالعمل على احدى هذه البرامج الثلاث بدلا عن الdev-C
codeblocks
يدعم عدد كبير جدا من المترجمات المشهوره بما فيها مترجمات مايكروزفت كما يدعم لغة D
وله ادوات وميزات افضل
monodevelop
يدعم عدد من اللغات واجملها دعمه للدوت نت
eclipse
هى البيئة الافضل والاقوى وتحتوى على كل المميزات للمترجمات السابقة والكثير غيرها واهم ميزه انها تتحول الى نمط حياة اكثر من انها واحهه او بيئة تطويريه انا استخدمها لتطوير برامج الC/C++ والphp وحبيبتى python كما استخدمها لقراءة الخلاصات rss واخذ المفكرات والتخطيط وسماع الموسيقى وكل شى
والاهم من كل ذلك انها محموله وتعمل على وندوز و linux و mac ولا يتم تسطيبها على النظام وانما تعمل مباشرة لذا انا دائما ما احملها معى فى فلاش
ملحوظة : الcodeblocks والmonodevelop ايضا تعمل على لينكس ووندوز على عكس dev-C
توجد توزيعه اخرى للdev-c هى wxdev-c وهى تتطور اسرع من النسخة الاصلية وتحتوى على خواص اكثر كما انها تدعم مكتبات wx بصوره جميله وسهله
فى النهاية الحكاية زوق وراحة فقط :)
صورة العضو الشخصية
abdu247
طالب نشيط
طالب نشيط
 
مشاركات: 41
اشترك في: الجمعة مارس 12, 2010 1:39 pm
الجامعة: السودان
المستوى الدراسي: الخامس
التخصص: هنسة كهربائية
الاهتمامات: لغة بايثون

Re: كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة Wajdy Essam » الثلاثاء مارس 16, 2010 9:53 pm

تحيه طيبة أخي abdu247 ،،

لم أتعامل مع Eclipse مطلقا حتى بالجافا لم أستخدمه الا مرة واحدة ولم أحبذه لأنه متشعب جدا وهناك المئات من الplugins فغضيت عنه نظر من وقتها :mrgreen: .. بالنسبة لDEV-C++ فنعم فريق العمل متوقف عن تطويره ، وحتى نسخه الGCC الموجودة به نسخه قديمة بعض الشيء ، لكنه جيد كبداية للمبتدئ لسهولة استخدامه ..

Code::Block خيار أفضل بالتأكيد كما ذكرت ، فهو يدعم أي مترجم (lcc,gcc,borland...) .. وخفيف أيضا ،
wx-dev++ استخدمتها وهي جميلة لكن يعيب عليها البطء الشديد في عملية الترجمة + عملية الDrag & Drop للمكونات ..

حاليا استخدم محرر نصوص Notepad++ بالاضافة الى مترجم gcc من سطر الأوامر ، أعتقد هكذا أفضل وأسرع بكثير ،،

مترجم ميكو أيضا ممتاز وسريع .. لكني لا استخدمه في العادة ..

----
اذا تعذر تحميل البرنامج لأحد الأخوه فيمكن البحث عنه في google واذا لم يتم ايجاده فيمكن لأحد الأخوه رفعه في أحدى مواقع التحميل ..

بالتوفيق أخي الكريم ...
صورة

صورة

حَسْبِيَ اللّهُ لا إِلَهَ إِلاَّ هُوَ عَلَيْهِ تَوَكَّلْتُ وَهُوَ رَبُّ الْعَرْشِ الْعَظِيمِ
Wajdy Essam
طالب فعال
طالب فعال
 
مشاركات: 784
اشترك في: الاثنين إبريل 21, 2008 12:43 am
الجامعة: Neelain
المستوى الدراسي: Graduate
التخصص: Computer Science

Re: كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة abdu247 » الأربعاء مارس 17, 2010 12:35 am

حياك الله...
فعلا بما انك مبرمج جافا كنت اتوقع ان تستخدم الeclipse فالشى الوحيد الذى لايعجبنى فيه هو انه مكتوب بالجافا...
:mrgreen: فى الحقيقة انا زاتى كنت كل مره بمشى وبجيه راجع تانى لحدى ما ظبط معاى :ugeek:
فعلا فريق الdev-c اتوقف عن تطويره من فتره طويله وعلى ما اذكر هو مبرمج بالدلفى 6 اووووووووووك...

فعلا الnotepad++ جميل وسريع ومحترف....
صورة العضو الشخصية
abdu247
طالب نشيط
طالب نشيط
 
مشاركات: 41
اشترك في: الجمعة مارس 12, 2010 1:39 pm
الجامعة: السودان
المستوى الدراسي: الخامس
التخصص: هنسة كهربائية
الاهتمامات: لغة بايثون

حياكم الله ،

مشاركةبواسطة SudaNix » الأربعاء مارس 17, 2010 9:57 pm

بالنسبة لي لا أحب بيئات التطوير كلها (ما عدا QtCreator :mrgreen: ) , وغالبا ما أستخدم vim,gcc,make.
وبعض الاحيان استبدل vim ب kate (محرر جميل وخفيف).

وعلى ويندوز فالافضل هو notepad++ و gcc أيضا :).


بالتوفيق.
صورة
صورة العضو الشخصية
SudaNix
مدير الموقع
مدير الموقع
 
مشاركات: 436
اشترك في: الاثنين إبريل 21, 2008 12:48 am
مكان: الرياض - السعودية
الجامعة: الخرطوم
المستوى الدراسي: خريج
التخصص: علوم حاسوب
الاهتمامات: OSDev

Re: كيفيه ترجمه وتنفيذ برامج سي++ باستخدام MinGW و DEV C++ 5

مشاركةبواسطة abdu247 » الخميس مارس 18, 2010 1:16 pm

QtCreator هى بيئة رائعة ولمنى لا احب العمل على c++ للحياة العادية ولكن اضعها للمهمات الصعبة
ولكن سوف احبها قريبا ففريق pyside يضعها ضمن اولوياته
فى الانتظار...
صورة العضو الشخصية
abdu247
طالب نشيط
طالب نشيط
 
مشاركات: 41
اشترك في: الجمعة مارس 12, 2010 1:39 pm
الجامعة: السودان
المستوى الدراسي: الخامس
التخصص: هنسة كهربائية
الاهتمامات: لغة بايثون


العودة إلى قسم لغه سي|سي++

الموجودون الآن

المستخدمون المتصفحون لهذا المنتدى: MSN [Bot] و 1 زائر