Różnica między kompilatorem GCC a CC

Kompilator GCC vs CC

CC to nazwa nadana komendzie kompilatora UNIX. Jest używany jako domyślna komenda kompilatora dla twojego systemu operacyjnego, a także jest wykonywalny z tą samą komendą. Z drugiej strony GCC to system operacyjny kompilatora GNU. W systemach działających na GNU i Linux powszechne jest, że CC jest linkiem, dzięki czemu skrypty mogą używać obu kompilatorów zamiennie i łatwo. Istnieją różne różnice w zakresie korzystania z kolekcji kompilatora GNU i kompilatora CC. Różnice te można ogólnie podzielić na 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 dwiema kwestiami dotyczy kompilatorów C i kompilatorów C ++. Kompilatory C ++ akceptują programy C ++, ale nie kompilują programów w języku C w sposób arbitralny. Jest to na ogół prawda, chociaż wykazano, że można napisać kod języka C w podzbiorze, który może być dobrze zrozumiany przez C ++, nawet jeśli wiele programów C nie jest prawidłowymi programami C ++. Z drugiej strony, kompilatory C akceptują programy C, ale odrzucają większość programów C ++, które w nich działają. Powodem tego problemu jest to, że większość programów w C ++ uruchamia konstrukcje, 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ą działać na bibliotekach C, ale jest to zależne od platformy. Z drugiej strony programy C nie mogą korzystać z bibliotek C ++; dlatego w C ++ jest zwykle dostępny większy zestaw bibliotek niż w C.

W systemie Solaris kod obiektowy generowany przez komendę kompilatora nie jest w żaden sposób zgodny z kodem generowanym przez g ++, ponieważ są to dwa osobne kompilatory, a ich konwencje będą się różnić. Głównymi różnymi punktami są obsługa wyjątków i mieszanie nazw. Należy jednak pamiętać, że zmiana nazwy jest ważna, aby zapobiec łączeniu kompatybilnych obiektów. Wskazuje to na fakt, że użycie biblioteki skompilowanej w CC wymaga skompilowania całego programu w CC. Ponadto, jeśli musisz użyć biblioteki skompilowanej z CC i innej z g ++, należy wykonać rekompilację bibliotek, aby zapewnić pożądaną funkcjonalność.

Pod względem jakości generowanego asemblera GCC, czyli kolekcja kompilatorów GNU, jest wyjątkowo dobra w tym zadaniu. Natywne kompilatory działają jednak czasami lepiej. Można powiedzieć, że kompilatory Intela mają gruntowne optymalizacje, które nie zostaną jeszcze zreplikowane w GCC.

Oba kompilatory są zupełnie nowe w stosunku do obecnych standardów, chociaż istnieją niewielkie różnice między językiem standardów a językiem obsługiwanym przez kompilator. Te standardy to (C ++ 98, C ++ 2003, C99). Starsze wsparcie dla C89 jest dostępne w obu kompilatorach, a zrozumienie oczekiwanych odpowiedzi ma kluczowe znaczenie dla zapewnienia, że ​​kompilator zostanie uruchomiony zgodnie z oczekiwaniami. Podsumowując, wydaje się, że GCC koncentruje się na ułatwianiu życia ze względu na rozszerzenia i poprawki, które można zrobić, aby uzyskać pożądany efekt.

streszczenie

Wystąpił problem z kompatybilnością krzyżową bibliotek kompilatora C i C ++.

Programy C ++ mogą działać na bibliotekach C, ale jest to zależne od platformy.

Korzystanie z biblioteki skomponowanej w CC wymaga skompilowania 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ę, tworząc wysokiej jakości zespoły.

Zarówno CC, jak i GCC pod względem funkcji językowych są świetne w stosunku do obecnych standardów.