Rozdiel medzi kompilátorom GCC a CC

Kompilátor GCC verzus CC

CC je názov priradený príkazu kompilátora UNIX. Používa sa ako predvolený príkaz kompilátora pre váš operačný systém a je tiež spustiteľný s rovnakým príkazom. GCC je naopak operačný systém GNU Compiler. V systémoch, ktoré bežia na GNU a Linuxe, je bežné nájsť CC ako spojenie, aby skripty mohli použiť prekladač buď zameniteľne a ľahko. Existujú rôzne rozdiely, pokiaľ ide o používanie kompilátora GNU a kompilátora CC. Tieto rozdiely možno vo všeobecnosti rozdeliť do dvoch hlavných skupín. Jedna z nich je špecifickejšia, zatiaľ čo druhá skupina je všeobecnejšia.

rozdiely

Hlavný rozdiel medzi týmito dvoma sa týka kompilátorov C a kompilátorov C ++. Kompilátory C ++ akceptujú programy C ++, ale nekompilujú programy v jazyku C ľubovoľne. To je vo všeobecnosti pravda, aj keď sa ukázalo, že je možné napísať kód jazyka C v podmnožine, ktorá je dobre zrozumiteľná pre C ++, aj keď veľa programov C nie je platných programov C ++. Na druhej strane kompilátory C akceptujú programy C, ale odmietajú väčšinu programov C ++, ktoré v nich bežia. Dôvodom tohto problému je to, že väčšina programov C ++ spúšťa konštrukty, ktoré nie sú dostupné v jazyku C.

Dostupné knižnice pre tieto programové jazyky do veľkej miery závisia od jazyka. Programy C ++ môžu fungovať v knižniciach C, ale je to špecifické pre platformu. Programy C na druhej strane nemôžu používať knižnice C ++; C ++ má preto tendenciu mať k dispozícii väčšiu knižnicu ako C.

V systéme Solaris nie je objektový kód, ktorý sa vytvára príkazom kompilátora, nijako kompatibilný s kódom vytvoreným g ++, pretože ide o dva samostatné kompilátory a ich konvencie sa budú líšiť. Hlavnými odlišnými bodmi sú zaobchádzanie s výnimkami a mangling mien. Je však dôležité si uvedomiť, že mangling mien je dôležitý, aby sa zabránilo vzájomnému prepojeniu kompatibilných objektov. To v skutočnosti poukazuje na skutočnosť, že použitie knižnice zostavenej v KC si vyžaduje, aby bol celý program skompilovaný v KC. Ak potrebujete použiť knižnicu skompilovanú s CC a ďalšiu s g ++, je potrebné vykonať kompiláciu knižníc, aby sa zabezpečila požadovaná funkčnosť.

V kvalite generovaného assembleru je GCC, čo je zbierka kompilátorov GNU, v tejto úlohe mimoriadne dobrá. Natívne kompilátory však niekedy fungujú lepšie. O kompilátoroch spoločnosti Intel možno povedať, že majú dôkladné optimalizácie, ktoré sa ešte v GCC replikujú.

Obidva kompilátory sú úplne nové v súčasných štandardoch, aj keď existujú malé rozdiely medzi jazykom štandardov a jazykom, ktorý kompilátor podporuje. Tieto normy sú (C ++ 98, C ++ 2003, C99). Staršia podpora C89 je dostupná v kompilátoroch a porozumenie očakávaným reakciám je rozhodujúce na zabezpečenie toho, aby sa kompilátor zavádzal podľa očakávania. Celkovo sa zdá, že GCC sa zameriava na uľahčenie života vďaka rozšíreniam a vyladeniam, ktoré sa dajú urobiť, aby sa dosiahol požadovaný výsledok..

zhrnutie

Vyskytol sa problém s krížovou kompatibilitou knižníc kompilátora C a C ++.

Programy C ++ môžu fungovať v knižniciach C, ale je to špecifické pre platformu.

Použitie knižnice zloženej z CC vyžaduje, aby bol celý program skompilovaný s CC a nie s GCC.
Ak máte knižnicu skompilovanú v CC a g ++, musí sa prekompilovať jedna z knižníc.

GCC robí úžasnú prácu pri vytváraní kvalitných zostáv.

CC aj GCC v jazykových vlastnostiach sú vo vzťahu k súčasným štandardom vynikajúce.