Forskjell mellom GCC og CC Compiler Forskjellen mellom

Anonim

GCC vs CC Compiler

CC er navnet gitt til UNIX Compiler Command. Den brukes som standard kompilator kommando for operativsystemet ditt og kan også kjøres med samme kommando. GCC, derimot, er GNU Compiler operativsystemet. På systemer som kjører på GNU og Linux, er det vanlig å finne at CC er en kobling, slik at skriptene kan bruke enten kompilator utveksling og enkelt. Det er ulike forskjeller observert når det gjelder bruk av GNU-kompilatorsamlingen og CC-kompilatoren. Disse forskjellene kan generelt grupperes i to hovedgrupper. En av disse er mer spesifikk mens den andre gruppen er mer generisk.

Forskjeller

Hovedforskjellen mellom de to handler med C-kompilatorer og C ++-kompilatorer. C ++-kompilatene aksepterer ikke C ++-programmer, men kompilerer ikke programmer i C vilkårlig. Dette er generelt sant, selv om det har blitt vist at det er mulig å skrive en C-språkkode i en delmengde som kan forstås godt av C ++, selv om mange C-programmer ikke er gyldige C ++-programmer. På den annen side aksepterer C-kompilatorer C-programmer, men avviser de fleste C ++-programmene som kjører i dem. Årsaken til at dette problemet oppstår er at de fleste C ++-programmer kjører konstruksjoner som ikke er tilgjengelige i C.

Tilgjengelige biblioteker for disse programsprogene er i stor grad avhengig av språket. C ++-programmer kan utføre på C-biblioteker, men dette er plattformspesifikt. C-programmer på den annen side kan ikke bruke C ++-biblioteker; C ++ har derfor et større bibliotekssett tilgjengelig enn C.

På Solaris er objektkoden som er produsert av kompilerkommandoen, på ingen måte kompatibel med koden produsert av g ++ da disse er to separate kompilatorer og deres konvensjonene vil variere. De viktigste forskjellene er unntakshåndtering og manglende navn. Det er imidlertid viktig å merke seg at navnet mangling er viktig for å hindre at gjenstander er koblet sammen. Dette peker i realiteten på at bruken av et bibliotek samlet i CC krever at hele programmet samles i CC. Også, hvis du trenger å bruke et bibliotek kompilert med CC og et annet med g ++, må en rekompilering av biblioteker gjøres for å sikre ønsket funksjonalitet.

I kvaliteten på assembler som genereres, er GCC, som er GNU Compiler Collection, ekstremt god i denne oppgaven. Innfødte kompilatorer fungerer imidlertid til tider bedre. Intel-kompilatorer kan sies å ha grundige optimaliseringer som ennå ikke skal replikeres i GCC.

Begge kompilatorer er alt i alt nye til dagens standarder, selv om det er små forskjeller mellom standardspråk og språket som kompilatoren støtter. Disse standardene er (C ++ 98, C ++ 2003, C99).Eldre C89-støtte er tilgjengelig i begge kompilatørene, og en forståelse av de forventede svarene er avgjørende for å sikre at kompilatoren ruller ut som forventet. Alt i alt synes GCC å være fokusert på å gjøre livet enklere på grunn av utvidelser og tweaks som kan gjøres for å få det ønskede resultatet.

Sammendrag

Det er et problem med krysskompatibilitet av C og C ++ kompilatorbiblioteker.

C ++-programmer kan utføre på C-biblioteker, men dette er plattformspesifikt.

For å bruke et bibliotek som er sammensatt i CC krever hele programmet å bli kompilert med CC og ikke GCC.

Hvis du har et bibliotek kompilert i CC og g ++, må en av bibliotene rekompileres.

GCC gjør en fantastisk jobb i å skape kvalitetssamlinger.

Både CC og GCC i språkfunksjoner er gode i forhold til gjeldende standarder.