

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# CC\$1\$1, e Fortran nel AL2 2023
<a name="c-cplusplus"></a>

AL2023 include sia la GNU Compiler Collection (GCC) che il Clang frontend per LLVM (Low Level Virtual Machine).

La versione principale di 023 GCC rimarrà costante per tutta la durata di vita di 023. AL2 Le versioni minori apportano correzioni di bug e potrebbero essere incluse nelle versioni AL2 023. Altre correzioni di bug, prestazioni e sicurezza potrebbero essere riportate nella versione principale disponibile nella 023. GCC AL2

 AL2023 include la versione 11 di GCC come compilatore predefinito con i frontend C (`gcc`), C\$1\$1 () e Fortran (`g++`). `gfortran` Inoltre, AL2 023 fornisce la GCC versione 14 come compilatore alternativo opzionale che può essere installato insieme alla versione predefinita. 

 AL2023 non abilita i frontend Ada (`gnat`), Go (`gcc-go`), Objective-C o Objective-C\$1\$1. 

 I flag predefiniti del compilatore con cui è stato creato 023 includono i flag di ottimizzazione e rafforzamento AL2. RPMs Per creare il tuo codice con GCC, ti consigliamo di includere flag di ottimizzazione e rafforzamento. 

**Nota**  
Quando `gcc --version` viene richiamato, viene visualizzata una stringa di versione come `gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)`. `Red Hat` si riferisce al [ramo del fornitore GCC](https://gcc.gnu.org/gitwrite.html#vendor) su cui si basa il pacchetto di Amazon Linux GCC. In base all'URL di segnalazione dei bug mostrato da`gcc --help`, tutte le segnalazioni di bug e le richieste di supporto devono essere indirizzate ad Amazon Linux.  
Per maggiori informazioni su alcune delle modifiche a lungo termine in questo ramo del fornitore, come la `__GNUC_RH_RELEASE__` macro, vedi i sorgenti dei pacchetti [Fedora](https://src.fedoraproject.org/rpms/gcc/pull-request/27).

Per ulteriori informazioni sulla toolchain di base, vedere. [Pacchetti di toolchain principali glibc, gcc, binutils](core-glibc.md)

Per ulteriori informazioni su AL2 023 e sulla sua relazione con altre distribuzioni Linux, vedere. [Relazione con Fedora](relationship-to-fedora.md)

Per ulteriori informazioni sulla variazione della tripletta del compilatore in AL2 023 rispetto a, vedere. AL2 [Tripletta del compilatore](compare-with-al2.md#compiler-triplet)

**Topics**
+ [GCC14](#gcc14)
+ [Confronto tra le versioni linguistiche standard](#language-standards-comparison)

## GCC14
<a name="gcc14"></a>

 AL2023 fornisce GCC 14 come compilatore opzionale che può essere installato insieme all'11 predefinitoGCC. GCC14 include le funzionalità e le ottimizzazioni più recenti del linguaggio, il che lo rende adatto a progetti che richiedono il supporto degli standard C, C\$1\$1 o Fortran più recenti. 

Per installare GCC 14, usa il seguente comando:

```
sudo dnf install gcc14 gcc14-c++ gcc14-gfortran
```

 I GCC 14 compilatori vengono installati con nomi di comando specifici della versione per evitare conflitti con l'11 predefinito: GCC 
+ `gcc14-gcc`- compilatore C
+ `gcc14-g++`- compilatore C\$1\$1
+ `gcc14-gfortran`- compilatore Fortran

Esempio di utilizzo:

```
gcc14-gcc -o myprogram myprogram.c
gcc14-g++ -o mycppprogram mycppprogram.cpp
gcc14-gfortran -o myfortranprogram myfortranprogram.f90
```

 È possibile verificare la versione installata eseguendo: 

```
gcc14-gcc --version
```

 Verranno visualizzate informazioni sulla versione simili a: `gcc14-gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)` 

**Nota**  
 La GCC versione 11 e la GCC 14 possono essere installate contemporaneamente sullo stesso sistema. I `gfortran` comandi predefiniti `gcc` e continueranno a utilizzare GCC 11, mentre GCC 14 è accessibile tramite i comandi specifici della versione. `g++` 

## Confronto tra le versioni linguistiche standard
<a name="language-standards-comparison"></a>

 La tabella seguente confronta le versioni standard del linguaggio predefinito tra diverse versioni di Amazon Linux e versioni del GCC compilatore: 


| Versione di Amazon Linux | C Standard (impostazione predefinita) | Standard C\$1\$1 (impostazione predefinita) | Norma Fortran | 
| --- | --- | --- | --- | 
| AL2 con GCC 7 (impostazione predefinita) | C11 (201112L) | C\$114 (2014-02 L) | Fortran 2008 | 
| AL2 con GCC 10 (opzionale) | C17/C18 (201710L) | C\$1\$1 14 (2014-02 L) | Fortran 2008 | 
| AL2023 con GCC 11 (impostazione predefinita) | C17/C18 (201710L) | C\$1\$1 17 (201703 L) | Fortran 2008 | 
| AL2023 con GCC 14 (opzionale) | C17/C18 (201710L) | C\$1\$1 17 (201703 L) | Fortran 2008 | 

 **Principali miglioramenti per versione: GCC** 
+  **GCC10 vs GCC 7:** standard C predefinito aggiornato da C11 a C17/C18, aggiunto supporto per le funzionalità di C\$1\$120 e funzionalità di ottimizzazione migliorate. 
+  **GCC11 vs GCC 10:** standard C\$1\$1 predefinito aggiornato da C\$1\$114 a C\$1\$117, supporto C\$1\$120 migliorato e funzionalità sperimentali di C\$1\$123. 
+  **GCC14 vs GCC 11:** aggiunto il supporto completo dello standard C23, funzionalità C\$1\$123 migliorate, ottimizzazione migliorata e migliore conformità agli standard. 

 **Standard linguistici supportati:** 
+  **Standard C:** tutte le versioni supportano C90, C99, C11 e C17/C18. GCC10\$1 supporta C2x (bozza C23), mentre 14 fornisce il supporto completo per C23. GCC 
+  **Standard C\$1\$1:** tutte le versioni supportano C\$1\$198, C\$1\$103, C\$1\$111, C\$1\$114, C\$1\$117 e C\$1\$120. GCC11\$1 fornisce supporto sperimentale per C\$1\$123, con 14 che offrono funzionalità C\$1\$123 avanzate. GCC 
+  **Standard Fortran:** tutte le versioni supportano principalmente Fortran 2008, con diversi livelli di funzionalità di Fortran 2018 a seconda della versione. GCC 

**Nota**  
 Sebbene gli standard predefiniti rimangano coerenti tra GCC 11 e 14, GCC 14 offre un supporto delle funzionalità linguistiche notevolmente migliorato, una migliore ottimizzazione, una diagnostica migliorata e un'implementazione più completa degli standard più recenti quando richiesto esplicitamente utilizzando i flag. `-std=` 