C, C++ e Fortran no AL2023 - Amazon Linux 2023

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++ e Fortran no AL2023

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++ (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++.

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 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.

Para obter mais informações sobre a cadeia de ferramentas principal, consulte Pacotes principais do conjunto de ferramentas glibc, gcc, binutils.

Para obter mais informações sobre o AL2023 e sua relação com outras distribuições do Linux, consulte Relacionamento com o Fedora.

Para obter mais informações sobre a alteração do tripleto do compilador no AL2023 em relação ao AL2, consulte Compilador Triplet.

GCC 14

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++ 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++

  • 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 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++ (padrão) Padrão Fortran
AL2 com GCC 7 (padrão) C11 (201112L) C++14 (201402L) Fortran 2008
AL2 com GCC 10 (opcional) C17/C18 (201710L) C++14 (201402L) Fortran 2008
AL2023 com GCC 11 (padrão) C17/C18 (201710L) C++17 (201703L) Fortran 2008
AL2023 com GCC 14 (opcional) C17/C18 (201710L) C++17 (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++20 e melhoria dos recursos de otimização.

  • GCC 11 versus GCC 10: atualização do padrão C++ de C++14 para C++17, melhoria do suporte ao C++20 e adição de recursos experimentais do C++23.

  • GCC 14 versus GCC 11: adição de suporte completo ao padrão C23, melhoria dos recursos do C++23, 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+ é compatível com C2x (rascunho de C23), enquanto o GCC 14 oferece suporte completo ao C23.

  • Padrões C++: todas as versões são compatíveis com C++98, C++03, C++11, C++14, C++17 e C++20. O GCC 11+ oferece suporte experimental ao C++23, com o GCC 14 oferecendo recursos aprimorados do C++23.

  • 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=.