Różnica między kompilatorem GCC i CC

Różnica między kompilatorem GCC i CC

GCC vs CC Compiler

CC to nazwa nadana poleceniu kompilatora UNIX. Jest używany jako domyślne polecenie kompilatora dla systemu operacyjnego, a także można wykonywać za pomocą tego samego polecenia. Z drugiej strony GCC to system operacyjny kompilatora GNU. W systemach działających na GNU i Linux często uważa się, że CC jest linkiem, aby skrypty mogły używać kompilatora zamiennie i łatwo. Istnieją różne różnice w odniesieniu do korzystania z kolekcji kompilatora GNU i kompilatora CC. Różnice te można ogólnie pogrupować w dwie główne grupy. Jedna z nich jest bardziej szczegółowa, podczas gdy druga grupa jest bardziej ogólna.

Różnice

Główna różnica między tymi dwoma ofertami z kompilatorami C i kompilatorami C ++. Kompilatory C ++ akceptują programy C ++, ale nie kompilują programów w C. Jest to ogólnie prawdą, chociaż wykazano, że możliwe jest napisanie kodu języka C w podzbiorze, który może być dobrze zrozumiany przez C ++, nawet gdy wiele programów C nie jest prawidłowych programów C ++.  Z drugiej strony, kompilatory C akceptują C programy, ale odrzucają większość programów C ++, które w nich działają. Powód, dla którego pojawia się ten problem, jest to, że większość programów C ++ uruchamia konstrukty, które nie są dostępne w C.

Dostępne biblioteki dla tych języków programu w dużej mierze zależą od języka. Programy C ++ mogą wykonywać biblioteki C, ale jest to specyficzne dla platformy. C programy C nie mogą używać bibliotek C ++; Zatem C ++ ma tendencję do dostępnego większego zestawu biblioteki niż C.

W Solaris kod obiektu wytwarzany przez polecenie kompilatora nie jest w żaden sposób kompatybilny z kodem wytwarzanym przez G ++, ponieważ są to dwa oddzielne kompilatory, a ich konwencje będą się różnić. Głównymi różnymi punktami są obsługa wyjątków i mało nazwy. Należy jednak zauważyć, że nazwa Mangling jest ważna, aby zapobiec połączeniu kompatybilności obiektów.  W rzeczywistości wskazuje na fakt, że użycie biblioteki opracowanej w CC wymaga kompilowania całego programu w CC. Ponadto, jeśli chcesz użyć biblioteki skompilowanej z CC, a drugą z G ++, należy dokonać ponownej kompilacji bibliotek, aby zapewnić pożądaną funkcjonalność.

W jakości generowanej asemblera GCC, który jest kolekcją kompilatora GNU, jest niezwykle dobry w tym zadaniu. Rodzime kompilatory czasami działają lepiej. Można powiedzieć, że kompilatory Intel mają dokładne optymalizacje, które nie zostały jeszcze powtórzone w GCC.

Oba kompilatory są we wszystkich nowych ze względu na obecne standardy, mimo że istnieją niewielkie różnice między językiem standardów a językiem, który obsługuje kompilator. Te standardy to (C ++ 98, C ++ 2003, C99). Starsze wsparcie C89 jest dostępne w obu kompilatorach, a zrozumienie oczekiwanych odpowiedzi ma kluczowe znaczenie dla zapewnienia, że ​​kompilator wprowadzi się zgodnie z oczekiwaniami. W sumie GCC wydaje się koncentrować się na ułatwieniu życia z powodu rozszerzeń i poprawek, które można zrobić, aby uzyskać pożądany wynik.

Streszczenie

Występuje problem z kompatybilnością krzyżową bibliotek kompilatorów C i C ++.

Programy C ++ mogą wykonywać biblioteki C, ale jest to specyficzne dla platformy.

Aby użyć biblioteki skomponowanej w CC wymaga opracowania całego programu z CC, a nie GCC.
Jeśli masz bibliotekę skompilowaną w CC i G ++, jedna z bibliotek musi zostać ponownie skompilowana.

GCC wykonuje cudowną pracę w tworzeniu wysokiej jakości zespołów.

Zarówno CC, jak i GCC w cechach językowych są świetne w odniesieniu do obecnych standardów.