Skillnad mellan GCC och CC Compiler Skillnaden mellan

Anonim

GCC vs CC Compiler

CC är namnet som ges till UNIX Compiler Command. Den används som standardkompilerkommandot för ditt operativsystem och kan också köras med samma kommando. GCC, å andra sidan, är GNU Compiler operativsystem. På system som körs på GNU och Linux är det vanligt att hitta CC som en länk så att skripten kan använda kompilatorn utbytbart och enkelt. Det finns olika skillnader i förhållande till användningen av GNU-kompilatorns samling och CC-kompilatorn. Dessa skillnader kan i allmänhet grupperas i två huvudgrupper. En av dessa är mer specifika medan den andra gruppen är mer generisk.

Skillnader

Huvudskillnaden mellan de två behandlar C-kompilatorer och C ++-kompilatorer. C ++-kompilatörerna accepterar inte C ++-program men kompilerar inte program i C godtyckligt. Detta är i allmänhet sant, även om det har visats att det är möjligt att skriva en C-språkkod i en delmängd som kan förstås väl av C ++ även när många C-program inte är giltiga C ++-program. Å andra sidan accepterar C-kompilatorer C-program men avvisar de flesta C ++-programmen som körs i dem. Anledningen till att detta problem uppstår är att de flesta C ++-program kör konstruktioner som inte är tillgängliga i C.

De tillgängliga biblioteken för dessa programspråk beror till stor del på språket. C ++-program kan fungera på C-bibliotek, men det här är plattformsspecifikt. C-program å andra sidan kan inte använda C ++-bibliotek; C ++ tenderar därför att ha ett större biblioteksset tillgängligt än C.

På Solaris är objektkoden som produceras av kompilatorkommandot inte på något sätt kompatibel med koden som produceras av g ++ eftersom dessa är två separata kompilatorer och deras konventioner kommer att skilja sig från varandra. De viktigaste skillnaderna är undantagshantering och namnbristning. Det är dock viktigt att notera att namnet mangling är viktigt för att förhindra att föremål förenas med varandra. Detta pekar i praktiken på att användningen av ett bibliotek som sammanställts i CC behöver att hela programmet sammanställs i CC. Om du också behöver använda ett bibliotek som kompilerats med CC och ett annat med g ++ måste en omkompilering av bibliotek göras för att säkerställa önskad funktionalitet.

I kvaliteten på assembler som genereras är GCC, som är GNU Compiler Collection, mycket bra för denna uppgift. Native compilers fungerar dock ibland bättre. Intel-kompilatorer kan sägas ha noggranna optimeringar som ännu inte ska replikeras i GCC.

Båda kompilatörerna är alla nya till de nuvarande standarderna, även om det finns små skillnader mellan standardspråk och det språk som kompilatorn stöder. Dessa standarder är (C ++ 98, C ++ 2003, C99).Äldre C89-stöd finns tillgängligt i båda kompilatörerna och en förståelse av de förväntade svaren är avgörande för att kompilatorn ska röra sig som förväntat. Sammantaget verkar GCC vara fokuserad på att göra livet enklare på grund av tillägg och tweaks som kan göras för att få det önskade resultatet.

Sammanfattning

Det finns ett problem med tvärkompatibiliteten hos C och C ++-kompilatorbibliotek.

C ++-program kan fungera på C-bibliotek, men det här är plattformsspecifikt.

För att använda ett bibliotek som är sammansatt i CC krävs att hela programmet sammanställs med CC och inte GCC.

Om du har ett bibliotek sammanställt i CC och g ++ måste en av biblioteken kompileras.

GCC gör ett fantastiskt jobb för att skapa kvalitetssamlingar.

Både CC och GCC i språkfunktioner är bra i förhållande till nuvarande standarder.