

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# C, C\$1\$1 e Fortran no AL2023
<a name="c-cplusplus"></a>

O AL2023 inclui a coleção de compiladores GNU (GCC) e o frontend Clang para LLVM (máquina virtual de baixo nível).

A versão principal do GCC permanecerá constante durante toda a vida útil do AL2023. Versões menores trazem correções de bugs e podem ser incluídas nas versões do AL2023. Outras correções de bugs, desempenho e segurança podem ser transferidas para a versão principal de GCC que vem no AL2023.

 O AL2023 inclui a versão 11 de GCC como compilador padrão com os frontends C (`gcc`), C\$1\$1 (`g++`) e Fortran (`gfortran`). Além disso, o AL2023 fornece GCC versão 14 como um compilador alternativo opcional que pode ser instalado com a versão padrão. 

 O AL2023 não habilita os frontends Ada (`gnat`), Go (`gcc-go`), Objective-C ou Objective-C\$1\$1. 

 Os sinalizadores padrão do compilador com os quais os RPMs do AL2023 são criados incluem sinalizadores de otimização e fortalecimento. Para criar seu próprio código com GCC, recomendamos que você inclua sinalizadores de otimização e hardening. 

**nota**  
Quando `gcc --version` é invocado, uma string de versão como `gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)` é exibida. `Red Hat` refere-se à [filial do fornecedor do GCC](https://gcc.gnu.org/gitwrite.html#vendor) na qual o pacote Amazon Linux GCC se baseia. De acordo com o URL de relatórios de bugs mostrado por `gcc --help`, todos os relatórios de bugs e solicitações de suporte devem ser direcionados para o Amazon Linux.  
Para obter mais informações sobre algumas das mudanças de longo prazo nessa ramificação de fornecedor, como a macro `__GNUC_RH_RELEASE__`, consulte [Fedora package sources](https://src.fedoraproject.org/rpms/gcc/pull-request/27).

Para obter mais informações sobre a cadeia de ferramentas principal, consulte [Pacotes principais do conjunto de ferramentas glibc, gcc, binutils](core-glibc.md).

Para obter mais informações sobre o AL2023 e sua relação com outras distribuições do Linux, consulte [Relacionamento com o Fedora](relationship-to-fedora.md).

Para obter mais informações sobre a alteração do tripleto do compilador no AL2023 em relação ao AL2, consulte [Compilador Triplet](compare-with-al2.md#compiler-triplet).

**Topics**
+ [GCC 14](#gcc14)
+ [Comparação entre versões padrão da linguagem](#language-standards-comparison)

## GCC 14
<a name="gcc14"></a>

 O AL2023 fornece o GCC 14 como um compilador opcional que pode ser instalado com o GCC 11 padrão. O GCC 14 inclui os recursos e as otimizações de linguagem mais recentes, tornando-o adequado para projetos que exigem suporte aos padrões de C, C\$1\$1 ou Fortran mais recentes. 

Para instalar o GCC 14, use o seguinte comando:

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

 Os compiladores GCC 14 são instalados com nomes de comando específicos da versão para evitar conflitos com o GCC 11 padrão: 
+ `gcc14-gcc`: compilador C
+ `gcc14-g++`: compilador C\$1\$1
+ `gcc14-gfortran`: compilador Fortran

Exemplo de uso:

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

 Você pode verificar a versão instalada executando o seguinte: 

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

 Isso exibirá informações de versão semelhantes a: `gcc14-gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)` 

**nota**  
 Tanto o GCC 11 quanto o GCC 14 podem ser instalados simultaneamente no mesmo sistema. Os comandos padrão `gcc`, `g++` e `gfortran` continuarão usando o GCC 11, enquanto o GCC 14 é acessado por meio dos comandos específicos da versão. 

## Comparação entre versões padrão da linguagem
<a name="language-standards-comparison"></a>

 A tabela a seguir compara as versões padrão da linguagem padrão em diferentes versões do Amazon Linux e versões do compilador GCC: 


| Versão Amazon Linux | Padrão C (padrão) | Padrão C\$1\$1 (padrão) | Padrão Fortran | 
| --- | --- | --- | --- | 
| AL2 com GCC 7 (padrão) | C11 (201112L) | C\$1\$114 (201402L) | Fortran 2008 | 
| AL2 com GCC 10 (opcional) | C17/C18 (201710L) | C\$1\$114 (201402L) | Fortran 2008 | 
| AL2023 com GCC 11 (padrão) | C17/C18 (201710L) | C\$1\$117 (201703L) | Fortran 2008 | 
| AL2023 com GCC 14 (opcional) | C17/C18 (201710L) | C\$1\$117 (201703L) | Fortran 2008 | 

 **Principais melhorias por versão do GCC:** 
+  **GCC 10 versus GCC 7:** atualização do padrão C de C11 para C17/C18, adição de suporte aos recursos do C\$1\$120 e melhoria dos recursos de otimização. 
+  **GCC 11 versus GCC 10:** atualização do padrão C\$1\$1 de C\$1\$114 para C\$1\$117, melhoria do suporte ao C\$1\$120 e adição de recursos experimentais do C\$1\$123. 
+  **GCC 14 versus GCC 11:** adição de suporte completo ao padrão C23, melhoria dos recursos do C\$1\$123, aprimoramento da otimização e melhoria da conformidade com os padrões. 

 **Padrões de linguagem compatíveis:** 
+  **Padrões C:** todas as versões são compatíveis com C90, C99, C11 e C17/C18. O GCC 10\$1 é compatível com C2x (rascunho de C23), enquanto o GCC 14 oferece suporte completo ao C23. 
+  **Padrões C\$1\$1:** todas as versões são compatíveis com C\$1\$198, C\$1\$103, C\$1\$111, C\$1\$114, C\$1\$117 e C\$1\$120. O GCC 11\$1 oferece suporte experimental ao C\$1\$123, com o GCC 14 oferecendo recursos aprimorados do C\$1\$123. 
+  **Padrões Fortran:** todas as versões oferecem suporte ao Fortran 2008, com níveis variados de recursos do Fortran 2018 dependendo da versão do GCC. 

**nota**  
 Embora os padrões permaneçam consistentes entre o GCC 11 e 14, o GCC 14 oferece suporte significativamente melhor a recursos de linguagem, melhor otimização, diagnósticos aprimorados e implementação mais completa de padrões mais novos quando solicitados explicitamente usando sinalizadores `-std=`. 