ملخص
يترك هذا الدرس بيئة العمل التي سنعمل بها طوال الدورة مثبّتةً ومتحقَّقًا منها. يشرح أولًا ما الذي يُثبَّت ولماذا: مترجم، وهو برنامج مستقل؛ ومحرر هو Visual Studio Code، يستدعي المترجم؛ والإضافة الرسمية للمحرر الخاصة بلغة C++؛ والطرفية، التي يُستدعى منها المترجم دون وسيط. ثم يقدّم دليلًا كاملًا لكل نظام: في Windows، بيئة MSYS2 مع البيئة UCRT64 والمترجم GCC، أو مترجم Microsoft بديلًا؛ وفي macOS، أدوات سطر الأوامر في Xcode مع Clang، أو GCC من Homebrew إن لم يكفِ إصدار Apple؛ وفي Linux، مترجم GCC الخاص بالتوزيعة في Debian وUbuntu وFedora وArch. ويلي ذلك تثبيت المحرر وإضافته، وهو واحد في الأنظمة الثلاثة، وضبط وحدة التحكم في Windows لكي تكتب النص وتقرأه بترميز UTF-8. ويختم ببرنامج للتحقق يكتب سطرًا بالعربية والمعيار الذي يطبّقه المترجم من معايير C++، وبالأعطال الشائعة في التثبيت، كلٌّ منها مع سببه وعلاجه.
أهداف التعلم
- تثبيت مترجم يدعم C++23 على النظام الخاص، والتحقق من إصداره من الطرفية.
- تثبيت Visual Studio Code وإضافته الرسمية الخاصة بلغة C++، وفتح مجلد عمل به.
- ترجمة برنامج التحقق الأول وتنفيذه، من الطرفية ومن المحرر.
- تشخيص ثلاثة أعطال شائعة على الأقل في التثبيت وعلاجها (مترجم لا يُعثر عليه، إصدار قديم، معيار لا يُتعرَّف عليه).
ما الذي يُثبَّت ولماذا
رأينا في درس البرامج والمترجمات ولغة C++ أن البرنامج المكتوب بلغة C++ لا يُنفَّذ كما هو مكتوب: فـالمترجم ينقله إلى ملف تنفيذي، أي ملف يحوي تعليمات الآلة ويستطيع نظام التشغيل تشغيله. وإذا كان الأمر كذلك، فالبرمجة تحتاج إلى شيئين مختلفين على الأقل: مكان يُكتب فيه نص البرنامج، وأداة تنقله إلى ملف تنفيذي. الأول يقدّمه المحرر؛ والثاني يقدّمه المترجم. وهما برنامجان منفصلان، يُثبَّتان كلٌّ على حدة ويمكن أن يتعطّل كلٌّ منهما على حدة، ومن الأفضل ألا يُخلط بينهما: فالمحرر لا يترجم شيئًا، بل يطلب من المترجم أن يترجم ويعرض ما يجيب به.
لهذا الفصل نتيجة عملية تعتمد عليها جميع أدلة هذا الدرس. فحين «يترجم» المحرر، فإنه في الحقيقة يكتب في طرفية أمرًا مثل g++ main.cpp -o main، كما يمكن أن يكتبه الطالب نفسه. ومن ذلك يلزم أن كل ما يفعله المحرر يمكن فعله يدويًا أيضًا في الطرفية، وهي النافذة النصية التي تُكتب فيها الأوامر لنظام التشغيل؛ وأنه إذا تعطّل المحرر، أتاحت الطرفية معرفة ما إذا كان الخلل في المحرر أم في المترجم. ولذلك تعمل الدورة بالاثنين منذ اليوم الأول: بالمحرر للراحة، وبالطرفية لمعرفة ما يحدث.
القطع التي تُثبَّت أربع.
- المترجم، مع مكتبته القياسية. تستعمل الدورة المعيار C++23، فيجب أن يتعرّف عليه المترجم وأن تتضمن مكتبته ملف الترويسة
<print>، الذي يوفّرstd::println. سيُستعمل GCC (وأمره الخاص بلغة C++ هوg++) في Windows وLinux، وClang (clang++) في macOS. ويلزم GCC 15 أو ما بعده: فقد وصل ملف الترويسة<print>إلى مكتبة GCC مع الإصدار 14، لكن كتابة مجموعة كاملة بـstd::println، التي تستعملها الدورة منذ درس البرامج والمترجمات ولغة C++ وفي دروس كثيرة بعده، لم تصل إلا مع الإصدار 15. وفي macOS، أدوات Xcode 16 أو ما بعده. - المحرر: Visual Studio Code، وهو مجاني والبرنامج نفسه في الأنظمة الثلاثة، فتصلح إرشادات الدورة لها جميعًا.
- إضافة C/C++ الرسمية من Microsoft لـVisual Studio Code، التي تعلّم المحرر اللغة: تلوّن الشيفرة، وتشير إلى الأخطاء أثناء الكتابة، وتكمل الأسماء، وتعرف كيف تستدعي المترجم ومصحّح الأخطاء.
- مصحّح الأخطاء، وهو GDB في Windows وLinux، وLLDB في macOS: برنامج يتيح إيقاف التنفيذ والنظر في حالة البرنامج. يُثبَّت الآن مع المترجم وسيُستعمل ابتداءً من الوحدة 4.
الأدلة الآتية مستقلة بعضها عن بعض: يتبع كل طالب دليل نظامه ثم ينتقل إلى القسم الخاص بـVisual Studio Code. في كتل الأوامر، تمثّل العلامة $ في أول السطر محثّ الطرفية ولا تُكتب؛ والأسطر الخالية منها هي ما تجيب به الطرفية. والمواقع الرسمية المذكورة هي وحدها التي يحسن التنزيل منها: فبرنامج التثبيت المأخوذ من مكان آخر قد يكون قديمًا أو معدَّلًا.
جارٍ تحميل المحتوى…