ما تحتاجه فعلاً: مُترجِم
في الصفحة السابقة رأيت أن ++C لغة مُترجَمة؛ إذ تُحوَّل شيفرتك المصدرية إلى شيفرة آلة أصيلة قبل تشغيلها. ولفعل ذلك على جهازك تثبّت شيئًا أساسيًا واحدًا: مُترجِم ++C. يقرأ المُترجِم ملفات .cpp الخاصة بك، ويطبّق مكتبة ++C القياسية، ويُنتج ملفًا تنفيذيًا يشغّله معالجك مباشرةً.
أنت لست بحاجة إلى بيئة تطوير ثقيلة للبدء. فبيئة التطوير المتكاملة ما هي إلا محرّر مُحاط بأدوات، يقوم كله فوق المُترجِم نفسه. وكثيرون يكتبون ++C بمحرّر نصوص بسيط (أو VS Code) ويستدعون المُترجِم من الطرفية. ثبّت المُترجِم أولاً، ثم أضِف فوقه محرّرًا متى شئت.
كما أنك لا تحتاج إلى أيٍّ من هذا لمتابعة الدروس هنا؛ فكتل المحرّر في هذه الصفحات تُترجَم وتُشغَّل في السحابة. أعدّ مُترجِمًا محليًا حين ترغب في بناء وتشغيل ++C على حاسوبك الخاص.
اختر مُترجِمًا يناسب نظام تشغيلك
هناك ثلاثة مُترجِمات رئيسية لـ ++C، جميعها مجانية وحديثة بما يكفي لـ C++17 وC++20:
- GCC — أي مجموعة مُترجِمات GNU. واجهته الأمامية لـ ++C هي
g++. وهو الافتراضي على Linux. - Clang — مُترجِم LLVM. واجهته الأمامية لـ ++C هي
clang++. وهو الافتراضي على macOS. - MSVC — مُترجِم Microsoft (
cl.exe)، ويأتي مع Visual Studio. وهو الخيار الأصيل على Windows.
لا داعي للمبالغة في التفكير. استخدم ما هو قياسي على منصّتك؛ فـ لغة ++C واحدة في الثلاثة جميعًا، وكل مثال في هذه الدورة يُترجَم بأيٍّ منها. ولا تظهر الفروق إلا حين تصل إلى ميزات متقدّمة خاصة بكل مُورِّد.
ملاحظة سريعة حول التسمية: كلٌّ من
gccوg++جزء من GCC، لكن في ++C استدعِ دائمًاg++(لاgcc). فـg++يربط مكتبة ++C القياسية تلقائيًا، أماgccفلا يفعل، وستحصل على أخطاء رابط مُربِكة.
التثبيت على منصّتك
تختلف الآلية اختلافًا طفيفًا بين أنظمة التشغيل. وحيثما وُجد مدير حِزم، فضّله؛ إذ تصبح الترقيات أمرًا واحدًا.
Windows
أبسط طريق هو سلسلة أدوات GCC المجانية MinGW-w64 عبر مُثبِّت MSYS2. بعد تثبيت MSYS2، افتح طرفيته ونفّذ:
pacman -S mingw-w64-ucrt-x86_64-gcc
يمنحك ذلك g++. ثم أضِف C:\msys64\ucrt64\bin إلى متغيّر PATH كي يعمل g++ من أي طرفية. وبدلاً من ذلك، ثبّت Visual Studio (إصدار Community المجاني) مع عبء العمل "تطوير سطح المكتب باستخدام ++C" لتحصل على مُترجِم MSVC وبيئة تطوير متكاملة دفعة واحدة.
macOS
تُوفّر Apple مُترجِم Clang عبر Command Line Tools. ويُثبّتها أمر واحد:
xcode-select --install
يمنحك ذلك clang++. وإن كنت تفضّل GCC، فثبّته عبر Homebrew: brew install gcc.
Linux (Debian/Ubuntu)
sudo apt update
sudo apt install g++
أما على Fedora/RHEL فالأمر هو sudo dnf install gcc-c++. هذه أوامر صَدَفة (shell) وليست ++C؛ فهي تثبّت المُترجِم على مستوى النظام كله. وتثبيت حزمة build-essential على Ubuntu يجلب g++ إضافةً إلى make وأدوات بناء أخرى دفعة واحدة.
تحقّق من نجاح العملية
هذه هي الخطوة التي يتجاوزها الناس ثم يضيّعون عليها ساعة. افتح طرفية جديدة (كي تلتقط PATH المُحدَّث) واسأل المُترجِم عن إصداره:
g++ --version
من المفترض أن ترى شيئًا مثل:
g++ (Ubuntu 13.2.0-4ubuntu3) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
على macOS يقابله clang++ --version، وعلى Windows مع MSVC يقابله cl (يُشغَّل من "Developer Command Prompt"). إن ظهرت لك command not found فالمُترجِم إما غير مثبّت أو غير مُدرَج في PATH؛ عُد إلى خطوة التثبيت الخاصة بمنصّتك وأعِد فتح الطرفية.
تحقّق آخر مفيد: تأكّد من المعيار الذي يعتمده المُترجِم افتراضيًا. فأي إصدار حديث من GCC أو Clang يعتمد افتراضيًا C++17 أو أحدث، وهو ما تفترضه هذه الصفحات. ويمكنك دائمًا فرض معيار معيّن صراحةً عبر راية مثل -std=c++20، وهو ما تتناوله الصفحة التالية بالتفصيل.
اختبار محلي سريع
ما إن يُبلّغ g++ --version عن رقم حتى يصبح جهازك قادرًا على بناء ++C. ونفس البرنامج تمامًا الذي ستترجمه محليًا يعمل أيضًا هنا في المتصفّح، فتستطيع التحقق من المُخرَجات قبل أن تلمس الطرفية أصلاً:
الماكرو __cplusplus رقم مُضمَّن يعرّفه المُترجِم ليخبرك بأي معيار لغوي يستخدم (فمثلاً 201703 تعني C++17). يبدأ كل برنامج ++C من int main()، ويكتب std::cout إلى وحدة التحكّم (الكونسول). على جهازك ستحفظ هذا باسم main.cpp، وتترجمه، وتشغّل الملف التنفيذي الناتج. وهذه الخطوتان المتتاليتان — البناء ثم التشغيل — هما تحديدًا موضوع الصفحة التالية.
ملاحظة عن PATH
أكثر ما يُعثِّر عمليات التثبيت الجديدة هو PATH؛ وهو قائمة المجلدات التي تبحث فيها الصَّدَفة عن البرامج. فإن نُفِّذ g++ --version من أي دليل، فإن PATH يتضمّن مجلد المُترجِم وكل شيء جاهز. أما إن عمل من دليل التثبيت فقط، أو لم يعمل إطلاقًا، فمجلد bin الخاص بالمُترجِم لم يُدرَج بعد في PATH.
- على Windows، هذه أكثر العقبات شيوعًا: بعد تثبيت MinGW-w64، عليك إضافة مجلد
binالخاص به إلى PATH يدويًا وفتح طرفية جديدة. - على macOS وLinux، يضع مديرو الحِزم وأدوات Xcode المُترجِم في PATH نيابةً عنك، فنادرًا ما تظهر هذه المشكلة.
وإن عجزت أداة بناء أو محرّر لاحقًا عن العثور على مُترجِمك رغم أن g++ --version يعمل في الطرفية، فالسبب يكون دائمًا تقريبًا متغيّر PATH لم يرثه التطبيق الرسومي؛ وعادةً ما تحلّ المشكلة بإعادة تشغيل التطبيق (أو الجهاز).
التالي: ترجمة ++C
أصبح لديك الآن مُترجِم يعمل وتحقّقت منه من سطر الأوامر. تحوّل الصفحة التالية ذلك إلى سير عمل حقيقي: كتابة ملف .cpp، وترجمته بـ g++ (بما في ذلك رايتا -std و-o اللتان تتحكّمان في المعيار واسم المُخرَج)، وتشغيل الملف التنفيذي الناتج، إضافةً إلى ما تفعله كل خطوة فعليًا خلف الكواليس.
الأسئلة الشائعة
هل أحتاج إلى بيئة تطوير متكاملة (IDE) لأبدأ كتابة ++C؟
لا. ما تحتاجه ++C هو مُترجِم، أما بيئة التطوير المتكاملة فاختيارية. المُترجِم (g++ أو clang++ أو cl الخاص بـ MSVC) هو ما يحوّل شيفرتك المصدرية إلى برنامج قابل للتشغيل؛ أما محرّر مثل VS Code أو بيئة مثل Visual Studio فيجعلان سير العمل أكثر سلاسة فحسب. ثبّت المُترجِم أولاً، وأضف محرّرًا متى شئت.
أي مُترجِم ++C ينبغي أن أثبّت؟
استخدم سلسلة الأدوات القياسية لنظام تشغيلك: GCC (g++) على Linux، وClang (clang++) على macOS عبر أدوات Xcode، وMSVC أو MinGW-w64 على Windows. الثلاثة جميعها مجانية وتدعم ++C الحديثة (C++17/C++20). اختر واحدًا، وأضِفه إلى متغيّر PATH، وبذلك تستطيع ترجمة كل مثال في هذه الدورة.
كيف أتحقق مما إذا كان مُترجِم ++C مثبّتًا بالفعل؟
افتح الطرفية ونفّذ g++ --version (أو clang++ --version). إن ظهر رقم إصدار، فهذا يعني أن المُترجِم موجود في PATH وجاهز للاستخدام. وإن ظهرت لك command not found فالمُترجِم إما غير مثبّت أو غير مُدرَج في PATH؛ ثبّت سلسلة الأدوات الخاصة بمنصّتك وفق الإرشادات أدناه.