Kompilator GCC i CC

Anonim

GCC vs CC Compiler

CC to nazwa nadana komendzie kompilatora UNIX. Jest on używany jako domyślne polecenie kompilatora dla twojego systemu operacyjnego, a także jest wykonywany za pomocą tego samego polecenia. Z kolei GCC to system operacyjny GNU Compiler. W systemach działających na GNU i Linuksie często spotyka się CC będący łączem, dzięki któremu skrypty mogą używać zamiennie i łatwo kompilatora. Istnieją różne różnice dotyczące 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 nimi polega na kompilatorach C i kompilatorach C ++. Kompilatory C ++ akceptują programy C ++, ale nie kompilują programów w C dowolnie. Jest to na ogół prawdziwe, 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 w C ++. Z drugiej strony, kompilatory C akceptują programy C, ale odrzucają większość programów C ++, które działają w nich. Powodem tego problemu jest to, że większość programów C ++ uruchamia konstrukcje, które nie są dostępne w C.

Dostępne biblioteki dla tych języków programowania w dużej mierze zależą od języka. Programy w 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 ++; w ten sposób C ++ ma większy zestaw bibliotek niż 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 oddzielne kompilatory i ich konwencje będą się różnić. Głównymi punktami różnicowymi są obsługa wyjątków i wymieszanie nazw. Należy jednak pamiętać, że wymazywanie nazw jest ważne, aby zapobiec łączeniu obiektów. W rezultacie wskazuje to na fakt, że korzystanie z biblioteki skompilowanej w CC wymaga, aby cały program był kompilowany w CC. Ponadto, jeśli potrzebujesz użyć biblioteki skompilowanej z CC i innej z g ++, należy wykonać rekompilację bibliotek, aby zapewnić pożądaną funkcjonalność.

W jakości generowanego assemblera GCC, który jest zbiorem GNU Compiler Collection, jest wyjątkowo dobry w tym zadaniu. Jednak natywne kompilatory działają czasem lepiej. Można powiedzieć, że kompilatory Intela mają gruntowne optymalizacje, które nie zostały jeszcze zreplikowane w GCC.

Oba kompilatory są zupełnie nowe pod względem obecnych standardów, mimo że 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 będzie działał zgodnie z oczekiwaniami. W sumie wydaje się, że GCC skupia się na ułatwianiu życia dzięki rozszerzeniom i poprawkom, które można zrobić, aby uzyskać pożądany rezultat.

streszczenie

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

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

Aby użyć biblioteki skomponowanej w CC, należy skompilować cały program z CC, a nie z GCC. Jeśli masz bibliotekę skompilowaną w CC i g ++, jedna z bibliotek musi zostać ponownie skompilowana.

GCC wykonuje cudowną pracę w tworzeniu złożeń jakości.

Zarówno CC jak i GCC w funkcjach językowych są świetne w stosunku do obecnych standardów.