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 GCCgcc --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 Cgcc14-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=.