Menu

התקנת C++: הגדרת קומפיילר ב-Windows, macOS ו-Linux

איך להתקין קומפיילר C++ (GCC, Clang או MSVC), לבחור ערכת כלים למערכת ההפעלה שלכם ולוודא משורת הפקודה שהוא עובד.

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

מה שבאמת צריך: קומפיילר

בעמוד הקודם ראיתם ש-C++ היא שפה מקומפלת: קוד המקור שלכם מתורגם לקוד מכונה מקורי לפני שהוא רץ. כדי לעשות את זה במחשב שלכם מתקינים דבר חיוני אחד: קומפיילר C++. הקומפיילר קורא את קובצי ה-.cpp, מחבר את הספרייה הסטנדרטית של C++ ומפיק קובץ הרצה שהמעבד מריץ ישירות.

לא צריך IDE כבד כדי להתחיל. IDE הוא בסך הכול עורך ועוד כלים שעטופים סביב אותו קומפיילר שמתחת. הרבה אנשים כותבים 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

הדרך הפשוטה ביותר היא ערכת הכלים החינמית MinGW-w64 של GCC דרך המתקין של MSYS2. אחרי התקנת MSYS2, פתחו את הטרמינל שלו והריצו:

pacman -S mingw-w64-ucrt-x86_64-gcc

כך תקבלו את g++. אחר כך הוסיפו את C:\msys64\ucrt64\bin ל-PATH כדי ש-g++ יעבוד מכל טרמינל. לחלופין, התקינו את Visual Studio (מהדורת Community החינמית) עם חבילת העבודה "Desktop development with C++" כדי לקבל את קומפיילר MSVC ו-IDE בבת אחת.

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: רשימת התיקיות שבהן ה-shell מחפש תוכניות. אם 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++ צריכה קומפיילר, ו-IDE הוא אופציונלי. הקומפיילר (g++, clang++ או cl של MSVC) הוא שהופך את קוד המקור לתוכנית שאפשר להריץ. עורך כמו VS Code או IDE כמו Visual Studio רק הופכים את העבודה לנוחה יותר. התקינו קודם את הקומפיילר, והוסיפו עורך מתי שתרצו.

איזה קומפיילר C++ כדאי להתקין?

השתמשו בערכת הכלים הסטנדרטית של מערכת ההפעלה שלכם: GCC (g++) ב-Linux, Clang (clang++) ב-macOS דרך כלי Xcode, ו-MSVC או MinGW-w64 ב-Windows. שלושתם חינמיים ותומכים ב-C++17/C++20 המודרניות. בחרו אחד, הוסיפו אותו ל-PATH, ותוכלו לקמפל כל דוגמה בקורס הזה.

איך בודקים אם קומפיילר C++ כבר מותקן?

פתחו טרמינל והריצו g++ --version (או clang++ --version). אם מופיע מספר גרסה, יש קומפיילר ב-PATH והוא מוכן לשימוש. אם מתקבל command not found, הקומפיילר חסר או לא נמצא ב-PATH: התקינו את ערכת הכלים לפלטפורמה שלכם לפי ההוראות שבהמשך.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל