Разница между GCC и CC Compiler

GCC против CC Compiler

CC - это имя, данное команде компилятора UNIX. Он используется в качестве команды компилятора по умолчанию для вашей операционной системы, а также является исполняемым с той же командой. GCC, с другой стороны, является операционной системой компилятора GNU. В системах, работающих на GNU и Linux, обычно считают, что CC является ссылкой, так что сценарии могут использовать любой компилятор взаимозаменяемо и легко. В отношении использования коллекции компиляторов GNU и компилятора CC наблюдаются различные различия. Эти различия обычно можно сгруппировать в две основные группы. Один из них более конкретный, а другой - более общий..

Различия

Основное различие между ними касается компиляторов C и C ++. Компиляторы C ++ принимают программы на C ++, но не компилируют программы на C произвольно. Это в целом верно, хотя было показано, что можно написать код языка C в подмножестве, которое может быть хорошо понято C ++, даже если многие программы на C не являются допустимыми программами C ++. С другой стороны, компиляторы C принимают программы на C, но отклоняют большинство программ на C ++, которые в них работают. Причина, по которой возникает эта проблема, заключается в том, что большинство программ на C ++ выполняют конструкции, недоступные в C.

Доступные библиотеки для этих языков программирования в значительной степени зависят от языка. Программы на C ++ могут работать на библиотеках C, но это зависит от платформы. Программы на C, с другой стороны, не могут использовать библиотеки C ++; таким образом, C ++ имеет больший доступный набор библиотек, чем C.

В Solaris объектный код, созданный командой compiler, никоим образом не совместим с кодом, созданным g ++, поскольку это два отдельных компилятора, и их соглашения будут различаться. Основными отличительными чертами являются обработка исключений и искажение имен. Тем не менее, важно отметить, что искажение имен важно для предотвращения соединения совместимых объектов. Это в действительности указывает на тот факт, что использование библиотеки, скомпилированной в CC, требует, чтобы вся программа была скомпилирована в CC. Кроме того, если вам нужно использовать библиотеку, скомпилированную с CC, а другую - с g ++, необходимо выполнить перекомпиляцию библиотек, чтобы обеспечить желаемую функциональность..

По качеству генерируемого ассемблера GCC, который является коллекцией компиляторов GNU, чрезвычайно хорош в этой задаче. Родные компиляторы, однако, иногда работают лучше. Можно сказать, что компиляторы Intel имеют тщательную оптимизацию, которую еще предстоит воспроизвести в GCC.

Оба компилятора вообще не знакомы с существующими стандартами, хотя между языком стандартов и языком, который поддерживает компилятор, есть небольшие различия. Эти стандарты (C ++ 98, C ++ 2003, C99). Более старая поддержка C89 доступна в обоих компиляторах, и понимание ожидаемых ответов имеет решающее значение для обеспечения того, чтобы компилятор развернулся, как ожидалось. В целом GCC, кажется, сосредоточен на том, чтобы облегчить жизнь благодаря расширениям и настройкам, которые можно сделать для достижения желаемого результата..

Резюме

Существует проблема с перекрестной совместимостью библиотек компиляторов C и C ++..

Программы на C ++ могут работать на библиотеках C, но это зависит от платформы.

Для использования библиотеки, составленной в CC, требуется, чтобы вся программа была скомпилирована с CC, а не с GCC.
Если у вас есть библиотека, скомпилированная в CC и g ++, одна из библиотек должна быть перекомпилирована.

GCC делает изумительную работу по созданию качественных сборок.

И CC, и GCC по языковым характеристикам великолепны по отношению к современным стандартам..