Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
C,C++, y Fortran en AL2 023
AL2023 incluye tanto la colección de compiladores GNU (GCC) como la Clang interfaz de LLVM (máquina virtual de bajo nivel).
La versión principal de GCC permanecerá constante durante toda la vida útil de 023. AL2 Las versiones menores incluyen correcciones de errores y podrían incluirse en las versiones AL2 023. Es posible que se hayan incorporado otras correcciones de errores, rendimiento y seguridad a la versión principal GCC que se incluye en AL2 la versión 023.
AL2023 incluye la versión 11 de GCC como compilador predeterminado con las interfaces C (gcc
), C++ (g++
) y Fortran (). gfortran
Además, AL2 023 proporciona la GCC versión 14 como un compilador alternativo opcional que se puede instalar junto con la versión predeterminada.
AL2023 no habilita las interfaces Ada (gnat
), Go (gcc-go
), Objective-C ni Objective-C++.
Los indicadores de compilación predeterminados con los que se crea AL2 023 incluyen los indicadores de optimización y RPMs endurecimiento. Para crear tu propio código con GCC, te recomendamos incluir indicadores de optimización y endurecimiento.
nota
Cuando se invoca gcc --version
, se muestra una cadena de versión como la siguiente gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)
. Red Hat
hace referencia a la ramificación de proveedores de GCCgcc --help
, todos los informes de errores y las solicitudes de soporte deben dirigirse a Amazon Linux.
Para obtener más información sobre algunos de los cambios a largo plazo en esta rama de proveedores, como la __GNUC_RH_RELEASE__
macro, consulte las fuentes de paquetes de Fedora
Para obtener más información sobre la cadena de herramientas principal, consulte. Paquetes principales de cadenas de herramientas glibc, gcc, binutils
Para obtener más información sobre AL2 023 y su relación con otras distribuciones de Linux, consulte. Relación con Fedora
Para obtener más información sobre el cambio de triplete del compilador en AL2 023 en comparación con, consulte. AL2 Triplete del compilador
GCC14
AL2023 proporciona GCC 14 como compilador opcional que se puede instalar junto con el 11 predeterminadoGCC. GCC14 incluye las últimas funciones y optimizaciones del lenguaje, lo que lo hace adecuado para proyectos que requieren compatibilidad con los estándares C, C++ o Fortran más recientes.
Para instalar GCC 14, usa el siguiente comando:
sudo dnf install gcc14 gcc14-c++ gcc14-gfortran
Los GCC 14 compiladores se instalan con nombres de comandos específicos de cada versión para evitar conflictos con los 11 predeterminados: GCC
gcc14-gcc
- Compilador de Cgcc14-g++
- Compilador C++gcc14-gfortran
- Compilador Fortran
Ejemplo de uso:
gcc14-gcc -o myprogram myprogram.c gcc14-g++ -o mycppprogram mycppprogram.cpp gcc14-gfortran -o myfortranprogram myfortranprogram.f90
Puede comprobar la versión instalada ejecutando:
gcc14-gcc --version
Esto mostrará información de la versión similar a la siguiente: gcc14-gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
nota
Tanto la GCC 11 como la GCC 14 se pueden instalar simultáneamente en el mismo sistema. De forma predeterminada gcc
g++
, y gfortran
los comandos seguirán utilizando la GCC 11, mientras que el acceso a la GCC 14 se realizará a través de los comandos específicos de la versión.
Comparación de versiones de idiomas estándar
En la siguiente tabla se comparan las versiones estándar del lenguaje predeterminado entre las distintas versiones de Amazon Linux y versiones del GCC compilador:
Versión de Amazon Linux | Estándar C (predeterminado) | Estándar C++ (predeterminado) | Estándar Fortran |
---|---|---|---|
AL2 con GCC 7 (predeterminado) | C11 (201112L) | C++14 (201402L) | Fortran 2008 |
AL2 con GCC 10 (opcional) | C17/C18 (2017 10L) | C++14 (201402L) | Fortran 2008 |
AL2023 con GCC 11 (predeterminado) | C17/C18 (201710L) | C++17 (201703 L) | Fortran 2008 |
AL2023 con GCC 14 (opcional) | C17/C18 (201710L) | C++17 (201703 L) | Fortran 2008 |
Mejoras clave por GCC versión:
-
GCC10 frente a GCC 7: se actualizó el estándar C predeterminado de C11 a C17/C18, se agregó compatibilidad con las funciones de C++20 y se mejoraron las capacidades de optimización.
-
GCC11 contra GCC 10: se actualizó el estándar predeterminado de C++ de C++14 a C++17, se mejoró la compatibilidad con C++20 y se agregaron funciones experimentales de C++23.
-
GCC14 contra GCC 11: se agregó compatibilidad total con el estándar C23, se mejoraron las funciones de C++23, se mejoró la optimización y se mejoró el cumplimiento de las normas.
Estándares de idiomas compatibles:
-
Estándares C: todas las versiones son compatibles con C90, C99, C11 y C17/C18. GCCLa versión 10+ es compatible con C2x (borrador de la C23), mientras que la 14 es totalmente compatible con la versión C23. GCC
-
Estándares C++: todas las versiones son compatibles con C++98, C++03, C++11, C++14, C++17 y C++20. GCCLa versión 11+ ofrece compatibilidad experimental GCC con C++23, y 14 ofrecen funciones mejoradas de C++23.
-
Estándares de Fortran: todas las versiones son compatibles principalmente con Fortran 2008, con diferentes niveles de funciones de Fortran 2018 según la versión. GCC
nota
Si bien los estándares predeterminados se mantienen consistentes entre la versión GCC 11 y la 14, la versión GCC 14 proporciona una compatibilidad significativamente mejorada con las funciones lingüísticas, una mejor optimización, un diagnóstico mejorado y una implementación más completa de los estándares más nuevos cuando se solicita explícitamente mediante indicadores. -std=