Diferencia entre el compilador GCC y CC

Diferencia entre el compilador GCC y CC

Compilador GCC vs CC

CC es el nombre dado al comando unix compilador. Se utiliza como el comando compilador predeterminado para su sistema operativo y también se ejecuta con el mismo comando. GCC, por otro lado, es el sistema operativo del compilador GNU. En los sistemas que se ejecutan en GNU y Linux, es común encontrar que el CC es un enlace para que los scripts puedan usar el compilador indistintamente y fácilmente. Se observan varias diferencias con respecto al uso de la colección del compilador GNU y el compilador CC. Estas diferencias generalmente se pueden agrupar en dos grupos principales. Uno de estos es más específico, mientras que el otro grupo es más genérico.

Diferencias

La principal diferencia entre los dos acuerdos con compiladores C y compiladores de C ++. Los compiladores C ++ aceptan programas C ++ pero no compilan programas en C arbitrariamente. Esto es generalmente cierto, aunque se ha demostrado que es posible escribir un código de lenguaje C en un subconjunto que C ++ pueda entender bien incluso cuando muchos programas C no son válidos programas C ++.  Por otro lado, los compiladores C aceptan programas C pero rechazan la mayoría de los programas de C ++ que se ejecutan en ellos. La razón por la que surge este problema es que la mayoría de los programas C ++ ejecutan construcciones que no están disponibles en C.

Las bibliotecas disponibles para estos idiomas del programa dependen en gran medida del idioma. Los programas C ++ pueden funcionar en bibliotecas C, pero esto es específico de la plataforma. Los programas C, por otro lado, no pueden usar bibliotecas C ++; Por lo tanto, C ++ tiende a tener un conjunto de biblioteca más grande disponible que C.

En Solaris, el código de objeto producido por el comando compilador no es compatible de ninguna manera con el código producido por el G ++, ya que estos son dos compiladores separados y sus convenciones diferirán. Los principales puntos diferentes son el manejo de excepciones y el destrozamiento de los nombres. Sin embargo, es importante tener en cuenta que la desglose de nombre es importante para evitar que los objetos se unan.  Esto en efecto apunta al hecho de que el uso de una biblioteca compilado en CC necesita que todo el programa se compilará en CC. Además, si necesita usar una biblioteca compilada con CC y otra con G ++, se debe hacer una recompilación de bibliotecas para garantizar la funcionalidad deseada.

En la calidad del ensamblador que se genera, GCC, que es la colección de compiladores de GNU, es extremadamente buena en esta tarea. Sin embargo, los compiladores nativos funcionan mejor a veces. Se puede decir que los compiladores de Intel tienen optimizaciones exhaustivas que aún no se han replicado en GCC.

Ambos compiladores son todos nuevos en los estándares actuales, a pesar de que existen pequeñas diferencias entre el lenguaje estándar y el lenguaje que el compilador admite. Estos estándares son (C ++ 98, C ++ 2003, C99). El soporte C89 anterior está disponible en ambos compiladores y una comprensión de las respuestas esperadas es crucial para garantizar que el compilador se desplace como se esperaba como se esperaba. En general, el CCG parece estar enfocado en facilitar la vida debido a las extensiones y ajustes que se pueden hacer para obtener el resultado deseado.

Resumen

Hay un problema con la compatibilidad cruzada de las bibliotecas de compiladores C y C ++.

Los programas C ++ pueden funcionar en bibliotecas C, pero esto es específico de la plataforma.

Para usar una biblioteca compuesta en CC requiere que todo el programa sea compilado con CC y no GCC.
Si tiene una biblioteca compilada en CC y G ++, una de las bibliotecas debe ser recompilada.

GCC hace un trabajo maravilloso en la creación de asambleas de calidad.

Tanto CC como GCC en las características del lenguaje son excelentes en relación con los estándares actuales.