Saltar al contenido

¿Cuál es la diferencia entre g ++ y gcc?

Bienvenido a nuestro sitio web, en este lugar encontrarás la resolución de lo que necesitas.

Solución:

gcc y g++ son controladores de compilador del compilador GNU Colección (que alguna vez fue solo el GNU Compilador C).

Aunque determinan automáticamente qué backends (cc1cc1plus …) para llamar según el tipo de archivo, a menos que se anule con -x languagetienen algunas diferencias.

La diferencia probablemente más importante en sus valores predeterminados es con qué bibliotecas se vinculan automáticamente.

De acuerdo con las opciones de enlace de documentación en línea de GCC y cómo se invoca g ++, g++ es equivalente a gcc -xc++ -lstdc++ -shared-libgcc (la primera es una opción del compilador, las dos segundas son opciones del enlazador). Esto se puede verificar ejecutando ambos con el -v opción (muestra los comandos de la cadena de herramientas de back-end que se están ejecutando).

GCC: Colección de compiladores GNU

  • Referentes a todos los diferentes lenguajes que son compatibles con el compilador GNU.

gcc: Compilador GNU C
g++: Compilador GNU C++

Las principales diferencias:

  1. gcc compilará: *.c*.cpp archivos como C y C++ respectivamente.
  2. g++ compilará: *.c*.cpp pero todos serán tratados como archivos C++.
  3. También si usas g++ para vincular los archivos de objetos, se vincula automáticamente en las bibliotecas estándar de C++ (gcc no hace esto).
  4. gcc compilar archivos C tiene menos macros predefinidas.
  5. gcc compilando *.cpp y g++ compilando *.c*.cpp archivos tiene algunas macros adicionales.

Macros adicionales al compilar *.cpp archivos:

#define __GXX_WEAK__ 1
#define __cplusplus 1
#define __DEPRECATED 1
#define __GNUG__ 4
#define __EXCEPTIONS 1
#define __private_extern__ extern

Para c ++ debe usar g ++.

Es el mismo compilador (por ejemplo, la colección de compiladores GNU). GCC o G ++ simplemente elija un front-end diferente con diferentes opciones predeterminadas.

En pocas palabras: si usa g ++, la interfaz le dirá al enlazador que es posible que desee vincular con las bibliotecas estándar de C ++. La interfaz de gcc no hará eso (también podría vincularse con ellos si pasa las opciones de línea de comando correctas).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *