ההבדל בין GCC ו- CC Compiler ההבדל בין

Anonim

GCC לעומת מהדר CC

CC הוא השם שניתן הפקודה UNIX קומפיילר. הוא משמש כברירת מחדל מהדר הפקודה עבור מערכת ההפעלה שלך גם הפעלה עם אותה פקודה. GCC, לעומת זאת, היא מערכת ההפעלה של GNU Compiler. במערכות המופעלות על גנו ולינוקס, זה נפוץ למצוא את CC להיות קישור כך סקריפטים יכולים להשתמש גם מהדר לסירוגין בקלות. ישנם הבדלים שונים שנצפו לגבי השימוש אוסף מהדר גנו ומהדר CC. הבדלים אלה יכולים להיות מקובצים לשתי קבוצות עיקריות. אחד מהם הוא ספציפי יותר בעוד הקבוצה האחרת היא כללית יותר.

-> ->

ההבדלים

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

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

ב- Solaris, קוד האובייקט המופק על-ידי פקודת המהדר אינו תואם באופן כלשהו לקוד המיוצר על-ידי ה- g + + מכיוון שאלה שני מהדרים נפרדים המוסכמות יהיו שונות. הנקודות העיקריות העיקריות הן טיפול יוצא מן הכלל ומילוי שמות. עם זאת חשוב לציין כי שם התכתבות חשוב כדי למנוע התאמה של אובייקטים מלהיות מקושרים יחד. זה למעשה מציין את העובדה כי השימוש בספרייה הידור ב CC צריך את התוכנית כולה להיות מלוקט ב CC. כמו כן, אם אתה צריך להשתמש בספרייה הידור עם CC ועוד עם g + +, recompilation של ספריות חייב להיעשות על מנת להבטיח את הפונקציונליות הרצויה.

באיכות של מאסף שנוצר, GCC, שהוא אוסף גנו מהדר, הוא טוב מאוד במשימה זו. מהדרים מקומיים עושים עם זאת לעבוד טוב יותר בזמנים. אינטל מהדר יכול להיות אמר יש אופטימיזציות יסודי כי הם עדיין להיות משוכפל ב GCC.

שני המהדרים הם כולם חדשים בסטנדרטים הנוכחיים, למרות שיש הבדלים זעירים בין שפת הסטנדרטים לבין השפה שבה תומך המהדר. תקנים אלה הם (C + 98, C + + 2003, C99).תמיכה ישנה יותר C89 זמין בשני המהדרים ואת ההבנה של התגובות הצפויות הוא חיוני כדי להבטיח מהדר מתגלגל כצפוי. בסך הכל GCC נראה מתמקדת בהפיכת החיים קלים יותר בשל הרחבות tweaks כי ניתן לעשות את זה כדי לקבל את התוצאה הרצויה.

סיכום

יש בעיה עם תאימות צולבת של ספריות מהדר C ו- C ++.

C + תוכניות יכול לבצע על ספריות C אבל זה פלטפורמה ספציפית.

כדי להשתמש בספריה המורכבת CC דורש את כל התוכנית להיות הידור עם CC ולא GCC.

אם יש לך ספרייה המורכבת ב- CC ו- g + +, אחת הספריות חייבת להיות מחדש.

GCC עושה עבודה נהדרת ביצירת הרכבות איכות.

הן CC ו- GCC בתכונות השפה נהדרות ביחס לסטנדרטים הנוכחיים.