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ă folosi 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
Principala diferență dintre cele două se ocupă de compilatoarele C și compilatoarele C ++. Compilatoarele C ++ acceptă programele C ++, dar nu compilează programele î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ă programele 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 lor 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 lucru indică, în fapt, faptul că utilizarea unei biblioteci compilate în CC necesită ca întregul program să fie compilat în CC. De asemenea, dacă trebuie să utilizați o bibliotecă compilată cu CC și o altă cu g ++, trebuie făcută o recompilare de biblioteci pentru a asigura funcționalitatea dorită.
În calitate de asamblare 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 toate standardele actuale, chiar dacă există diferențe minuscule între limbajul standardelor și limba pe care compilatorul o susține. 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 asupra ușurării vieții datorită extensiilor și optimizărilor 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 folosi 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 să fie recompilată.
CCG face o treabă minunată în crearea ansamblurilor de calitate.
Atât CC, cât și CCG în limbajul lingvistic sunt mari în raport cu standardele actuale.