Diferencia entre GCC y CC Compiler

Compilador GCC vs CC

CC es el nombre que se le da al comando del compilador de UNIX. Se utiliza como el comando del compilador predeterminado para su sistema operativo y también es ejecutable con el mismo comando. GCC, por otro lado, es el sistema operativo GNU Compiler. En sistemas que se ejecutan en GNU y Linux, es común encontrar CC como un enlace para que los scripts puedan usar cualquiera de los compiladores de manera intercambiable y fácil. Se observan varias diferencias con respecto al uso de la colección de compiladores 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 se relaciona con los compiladores de C y los compiladores de C ++. Los compiladores de C ++ aceptan programas C ++ pero no compilan programas en C arbitrariamente. Esto es generalmente cierto, aunque se ha demostrado que es posible escribir un lenguaje Ccódigoen un subconjunto que C ++ puede entender bien incluso cuando muchos programas C no son programas C ++ válidos. Por otro lado, los compiladores de C aceptan programas C pero rechazan la mayoría de los programas 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 lenguajes de 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 bibliotecas más grande disponible que C.

En Solaris, el código objeto producido por el comando del compilador no es de ninguna manera compatible con el código producido por g ++, ya que estos son dos compiladores separados y sus convenciones serán diferentes. Los principales puntos de diferencia son el manejo de excepciones y la alteración de nombres. Sin embargo, es importante tener en cuenta que la alteración de nombres es importante para evitar que los objetos compatibles se vinculen entre sí. Esto, en efecto, apunta al hecho de que el uso de una biblioteca compilada en CC requiere que todo el programa se compile en CC. Además, si necesita utilizar una biblioteca compilada con CC y otra con g ++, se debe realizar una recompilación de bibliotecas para asegurar la funcionalidad deseada.

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

Ambos compiladores son completamente nuevos para los estándares actuales, aunque existen pequeñas diferencias entre el lenguaje de estándares y el lenguaje que admite el compilador. Estos estándares son (C ++ 98, C ++ 2003, C99). Ambos compiladores disponen de compatibilidad con C89 más antigua y es fundamental comprender las respuestas esperadas para garantizar que el compilador se despliegue como se esperaba. En general, GCC parece estar enfocado en hacer la vida más fácil debido a las extensiones y ajustes que se pueden hacer para obtener el resultado deseado.

Resumen

Existe 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 utilizar una biblioteca compuesta en CC se requiere que todo el programa esté compilado con CC y no con GCC.
Si tiene una biblioteca compilada en CC y g ++, debe volver a compilar una de las bibliotecas.

GCC hace un trabajo maravilloso al crear ensamblajes de calidad.

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