翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AL2023 での C、C++、および Fortran
AL2023 には GNU コンパイラコレクション (GCC) と LLVM (低レベル仮想化マシン) の Clang フロントエンドの両方が含まれています。
GCC のメジャーバージョンは AL2023 の存続期間を通じて変わりません。マイナーリリースはバグ修正をもたらし、AL2023 リリースに含まれる可能性があります。その他のバグ、パフォーマンス、セキュリティの修正は、AL2023 GCC に含まれているメジャーバージョンにバックポートされる可能性があります。
AL2023 には、C (gcc)、C++ (g++)、および Fortran (gfortran) フロントエンドのデフォルトコンパイラとして GCC のバージョン 11 が含まれています。さらに、AL2023 は、デフォルトバージョンと一緒にインストールできるオプションの代替コンパイラとして GCC バージョン 14 を提供します。
AL2023 では、Ada (gnat)、Go (gcc-go)、Objective-C、Objective-C++ のフロントエンドは有効化されません。
AL2023 RPM のデフォルトのコンパイラフラグには、最適化フラグと強化フラグが含まれます。GCC で独自のコードを構築するには、最適化フラグと強化フラグを含めることをお勧めします。
注記
gcc --version が呼び出されると、gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4) のようなバージョン文字列が表示されます。Red Hat は Amazon Linux GCC パッケージのベースとなる GCC ベンダーブランチgcc --help に示されているバグレポート URL に従い、すべてのバグレポートとサポートリクエストは Amazon Linux に送信する必要があります。
__GNUC_RH_RELEASE__ マクロなど、このベンダーブランチの長期的な変更の詳細については、「Fedora パッケージソース
コアツールチェーンの詳細については、「コアツールチェーンパッケージglibc、gcc、binutils」を参照してください。
AL2023 および他の Linux ディストリビューションとの関係の詳細については、「Fedora との関係」を参照してください。
AL2 と比較した AL2023 のコンパイラトリプレットの変更の詳細については、「コンパイラトリプレット」を参照してください。
GCC 14
AL2023 は、デフォルトの GCC 11 と一緒にインストールできるオプションのコンパイラとして GCC 14 を提供しています。GCC 14 には最新の言語機能と最適化が含まれており、新しい C、C++、または Fortran 標準のサポートを必要とするプロジェクトに適しています。
GCC 14 をインストールするには、次のコマンドを使用します。
sudo dnf install gcc14 gcc14-c++ gcc14-gfortran
GCC 14 コンパイラは、デフォルトの GCC 11 との競合を避けるため、バージョン固有のコマンド名でインストールされます。
gcc14-gcc- C コンパイラgcc14-g++- C++ コンパイラgcc14-gfortran- Fortran コンパイラ
使用例:
gcc14-gcc -o myprogram myprogram.c gcc14-g++ -o mycppprogram mycppprogram.cpp gcc14-gfortran -o myfortranprogram myfortranprogram.f90
次のコマンドを実行すると、インストールされているバージョンを確認できます。
gcc14-gcc --version
これにより、次のようなバージョン情報が表示されます: gcc14-gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7)
注記
GCC 11 と GCC 14 の両方を同じシステムに同時にインストールできます。デフォルトの gcc、g++、gfortran コマンドは引き続き GCC 11 を使用し、バージョン固有のコマンドには GCC 14 を介してアクセスします。
言語標準バージョンの比較
次の表では、さまざまな Amazon Linux バージョンと GCC コンパイラバージョンのデフォルトの言語標準バージョンを比較しています。
| Amazon Linux バージョン | C 標準 (デフォルト) | C++ 標準 (デフォルト) | Fortran 標準 |
|---|---|---|---|
| AL2 と GCC 7 (デフォルト) | C11 (201112L) | C++14 (201402L) | Fortran 2008 |
| AL2 と GCC 10 (オプション) | C17/C18 (201710L) | C++14 (201402L) | Fortran 2008 |
| AL2023 と GCC 11 (デフォルト) | C17/C18 (201710L) | C++17 (201703L) | Fortran 2008 |
| AL2023 と GCC 14 (オプション) | C17/C18 (201710L) | C++17 (201703L) | Fortran 2008 |
GCC バージョン別の主な改善点:
-
GCC 10 対 GCC 7: デフォルトの C 標準を C11 から C17/C18 にアップグレード、C++20 機能のサポートを追加、最適化機能を改善。
-
GCC 11 対 GCC 10: デフォルトの C++ 標準を C++14 から C++17 にアップグレード、C++20 サポートを強化、実験的な C++23 機能を追加。
-
GCC 14 対 GCC 11: 完全な C23 標準サポート、C++23 機能の強化、最適化の向上、標準コンプライアンスの向上を追加。
サポートされている言語標準:
-
C 標準: すべてのバージョンで C90、C99、C11、C17/C18 をサポート、GCC 10+ で C2x (ドラフト C23) をサポート、GCC 14 で完全な C23 サポートを提供。
-
C++ 標準: すべてのバージョンで C++98、C++03、C++11、C++14、C++17、C++20 をサポート、GCC 11+ で実験的な C++23 サポートを提供、GCC 14 で C++23 の機能強化を提供。
-
Fortran 標準: すべてのバージョンで主に Fortran 2008 をサポート、GCC バージョンに応じて異なるレベルの Fortran 2018 の機能。
注記
デフォルトの標準は GCC 11~14 の間で一貫していますが、GCC 14 では、言語機能のサポートが大幅に改善され、最適化が向上し、診断が強化され、-std= フラグを使用して明示的に要求された場合に新しい標準のより完全な実装が提供されます。