GCC a CC Compiler

Anonim

GCC vs. kompilátor CC

CC je název daný příkazu UNIX Compiler Command. Používá se jako výchozí příkaz kompilátoru pro váš operační systém a je také spustitelný se stejným příkazem. GCC je naopak operačním systémem GNU Compiler. Na systémech, které běží na GNU a Linuxu, je běžné najít CC jako odkaz, aby skripty mohly používat kompilátor zaměnitelně a snadno. Existují různé rozdíly, pokud jde o použití kolekce překladačů GNU a kompilátoru CC. Tyto rozdíly lze obecně seskupit do dvou hlavních skupin. Jeden z nich je specifičtější, zatímco druhá skupina je obecnější.

Rozdíly

Hlavní rozdíl mezi oběma se zabývá kompilátory C a kompilátory C ++. Kompilátory jazyka C ++ přijímají programy C ++, ale v C libovolně nevytvářejí programy. To je obecně pravdivé, ačkoli bylo prokázáno, že je možné zapsat kód jazyka C do podmnožiny, který může C ++ dobře pochopit, i když mnoho programů C nejsou platnými programy C ++. Na druhé straně kompilátory C přijímají programy C, ale odmítají většinu programů C ++, které v nich běží. Důvodem, že tento problém vzniká, je, že většina programů C ++ spouští konstrukty, které nejsou k dispozici v jazyce C.

Dostupné knihovny pro tyto programové jazyky velmi závisí na jazyce. Programy C ++ mohou fungovat na knihovnách C, ale to je specifické pro platformu. C programy na druhé straně nemohou používat knihovny C ++; takže C ++ má tendenci mít k dispozici větší množinu knihoven než C.

Na objektu Solaris kód objektu, který je vytvořen příkazem kompilátoru, není v žádném případě kompatibilní s kódem vytvořeným v g ++, protože to jsou dva samostatné kompilátory a jejich konvence se liší. Mezi hlavní odlišné body patří zpracování výjimek a zmrazení jmen. Je ovšem důležité poznamenat, že klíčení názvů je důležité, aby se zabránilo vzájemnému propojení kompatibilních objektů. To ve skutečnosti poukazuje na skutečnost, že použití knihovny sestavené v CC vyžaduje, aby celý program byl sestaven v CC. Také, pokud potřebujete použít knihovnu kompilovanou s CC a jinou s g ++, je třeba provést recompilaci knihoven, abyste zajistili požadovanou funkcionalitu.

V kvalitě shromážděného assembleru je GCC, což je sbírka kompilátorů GNU, velmi dobrá v tomto úkolu. Nativní kompilátoři však občas pracují lépe. Je možné říci, že kompilátory Intel mají důkladnou optimalizaci, která je ještě třeba replikovat v GCC.

Oba překladače jsou ve všech novinkách v souladu se stávajícími normami, přestože existují malé rozdíly mezi jazykem standardů a jazykem, který kompilátor podporuje. Tyto standardy jsou (C ++ 98, C ++ 2003, C99). Starší podpora C89 je k dispozici v obou kompilátorech a pochopení očekávaných odpovědí je zásadní pro zajištění kompilátoru, jak se očekává. Vše ve všech GCC vypadá, že je zaměřeno na ulehčení života díky rozšířením a vylepšením, které lze provést, aby bylo dosaženo požadovaného výsledku.

souhrn

Vyskytl se problém s kompatibilitou knihoven kompilátorů C a C ++.

Programy C ++ mohou pracovat na knihovnách C, ale to je specifické pro platformu.

Použití knihovny složené v CC vyžaduje, aby celý program byl kompilován s CC a ne s GCC. Pokud máte knihovnu kompilovanou v CC a g ++, musí být jednou z knihoven překompilována.

GCC dělá skvělou práci při vytváření sestav kvality.

Jak CC, tak GCC v jazykových rysech jsou skvělé ve vztahu k současným standardům.