Diferența dintre GCC și CC Compiler Diferența dintre

Anonim

GCC vs CC Compiler

CC este numele dat comenzii UNIX Compiler. Este folosit ca comandă implicită de compilator pentru sistemul dvs. de operare și este, de asemenea, executabil cu aceeași comandă. GCC, pe de altă parte, este sistemul de operare GNU Compiler. Pe sistemele care rulează pe GNU și Linux, este comun să găsim că CC este un link, astfel încât scripturile să poată utiliza fie un compilator interschimbabil și ușor. Există diferențe diferite cu privire la utilizarea colecției compilatorului GNU și a compilatorului CC. Aceste diferențe pot fi în general grupate în două grupe principale. Unul dintre acestea este mai specific, în timp ce celălalt grup este mai generic.

Diferențe

Diferența principală dintre cele două se ocupă de compilatoarele C și compilatoarele C ++. Compilatoarele C ++ acceptă programele C ++, dar nu compilează programe în C în mod arbitrar. Acest lucru este, în general, adevărat, deși sa demonstrat că este posibil să se scrie un cod de limbă C într-un subset care poate fi bine înțeleasă de C ++, chiar dacă multe programe C nu sunt programe C ++ valabile. Pe de altă parte, compilatoarele C acceptă programe C, dar resping majoritatea programelor C ++ care rulează în ele. Motivul pentru care apare această problemă este că majoritatea programelor C ++ execută constructe care nu sunt disponibile în C.

Bibliotecile disponibile pentru aceste limbi de program depind în mare măsură de limbă. Programele C ++ pot funcționa pe bibliotecile C, dar aceasta este specifică platformei. Programele C, pe de altă parte, nu pot utiliza biblioteci C ++; astfel C ++ tinde să aibă un set mai mare de bibliotecă disponibil decât C.

Pe Solaris, codul obiect care este produs de comanda compilatorului nu este în niciun fel compatibil cu codul produs de g ++, deoarece acestea sunt două compilatoare separate și convențiile vor fi diferite. Principalele puncte diferite sunt manipularea excepțiilor și mângâierea numelor. Cu toate acestea, este important să rețineți că numele de mangling este important pentru a împiedica conectarea obiectelor compatibile între ele. Acest fapt indică faptul că utilizarea unei biblioteci compilate în CC necesită completarea programului în CC. De asemenea, dacă trebuie să utilizați o bibliotecă compilată cu CC și alta cu g ++, trebuie făcută o recompilare de biblioteci pentru a asigura funcționalitatea dorită.

În calitate de asamblator care este generat, GCC, care este Colecția de compilatoare GNU, este extrem de bună la această sarcină. Compilatorii nativi funcționează însă mai bine uneori. Se poate spune că compilatoarele Intel au optimizări minuțioase care urmează să fie replicate în GCC.

Ambii compilatoare sunt toate noi în conformitate cu standardele actuale, chiar dacă există diferențe minuscule între limbajul standardelor și limbajul pe care îl suportă compilatorul. Aceste standarde sunt (C ++ 98, C ++ 2003, C99).Suportul mai vechi C89 este disponibil în ambele compilatoare și o înțelegere a răspunsurilor așteptate este crucială pentru a se asigura că compilatorul rulează așa cum era de așteptat. Toate în toate GCC pare să se concentreze pe a face viața mai ușoară din cauza extensiilor și trucurilor care pot fi făcute pentru a obține rezultatul dorit.

Rezumat

Există o problemă cu compatibilitatea încrucișată a bibliotecilor de compilatoare C și C ++.

Programele C ++ pot funcționa pe bibliotecile C, dar aceasta este specifică platformei.

Pentru a utiliza o bibliotecă compusă în CC, este necesar ca întregul program să fie compilat cu CC și nu cu GCC.

Dacă aveți o bibliotecă compilată în CC și g ++, una dintre biblioteci trebuie recompilată.

GCC face o treabă minunată în crearea ansamblurilor de calitate.

Atât CC, cât și CCG în limbaj sunt excelente în raport cu standardele actuale.