Rozdíl mezi kompilátorem GCC a CC

Kompilátor GCC vs. CC

CC je název přidělený příkazu kompilátoru UNIX. 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í systém GNU Compiler. V systémech, které běží na GNU a Linuxu, je běžné najít CC jako odkaz, takže skripty mohou používat překladač buď zaměnitelně a snadno. Existují různé rozdíly, pokud jde o používání kompilátoru GNU a kompilátoru CC. Tyto rozdíly lze obecně rozdělit do dvou hlavních skupin. Jedna z nich je konkrétnější, zatímco druhá skupina je obecnější.

Rozdíly

Hlavní rozdíl mezi oběma se týká kompilátorů C a kompilátorů C ++. Kompilátory C ++ přijímají programy C ++, ale nekompilují programy v C libovolně. To je obecně pravda, i když se ukázalo, že je možné psát kód jazyka C v podmnožině, kterou C ++ dobře rozumí, i když mnoho C programů není validních C ++ programů. 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 tohoto problému je, že většina programů C ++ spouští konstrukty, které nejsou k dispozici v jazyce C.

Dostupné knihovny pro tyto programové jazyky do značné míry závisí na jazyce. Programy C ++ mohou provádět v knihovnách C, ale to je specifické pro platformu. Programy C na druhé straně nemohou používat knihovny C ++; C ++ má proto tendenci mít k dispozici větší knihovnu než C.

V systému Solaris není kód objektu, který je produkován příkazem kompilátoru, nijak kompatibilní s kódem vytvořeným g ++, protože se jedná o dva samostatné kompilátory a jejich konvence se budou lišit. Hlavními odlišnými body jsou zpracování výjimek a mangling jmen. Je však důležité si uvědomit, že manglování jmen je důležité, aby se zabránilo vzájemnému propojení kompatibilních objektů. To ve skutečnosti ukazuje na skutečnost, že použití knihovny kompilované v CC potřebuje, aby byl celý program kompilován v CC. Také, pokud potřebujete použít knihovnu zkompilovanou s CC a jinou s g ++, je nutné provést kompilaci knihoven, aby byla zajištěna požadovaná funkčnost.

V kvalitě generátoru, který je generován, je GCC, což je kolekce překladačů GNU, v tomto úkolu extrémně dobrá. Nativní kompilátoři však občas pracují lépe. O kompilátorech Intel lze říci, že mají důkladné optimalizace, které se ještě v GCC replikují.

Oba kompilátory jsou ve všech současných standardech zcela nové, i když existují malé rozdíly mezi jazykem standardů a jazykem, který kompilátor podporuje. Tyto standardy jsou (C ++ 98, C ++ 2003, C99). Starší kompilace C89 je k dispozici jak v kompilátorech, tak porozumění očekávaným reakcím je zásadní pro zajištění toho, aby kompilátor dojel podle očekávání. Celkově se zdá, že GCC se zaměřuje na usnadnění života díky rozšířením a vylepšením, které lze s cílem dosáhnout požadovaného výsledku.

souhrn

Je problém s křížovou kompatibilitou kompilátorových knihoven C a C ++.

Programy C ++ mohou provádět v knihovnách C, ale to je specifické pro platformu.

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

GCC dělá úžasnou práci při vytváření kvalitních sestav.

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