AL2023 での C、C++、および Fortran - Amazon Linux 2023

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 ベンダーブランチを指します。に表示されるバグレポート URL に従ってgcc --help、すべてのバグレポートとサポートリクエストを Amazon Linux に送信する必要があります。

__GNUC_RH_RELEASE__ マクロなど、このベンダーブランチの長期的な変更の詳細については、「Fedora パッケージソース」を参照してください。

コアツールチェーンの詳細については、「」を参照してくださいコアツールチェーンパッケージglibc、gcc、binutils

AL2023 と他の Linux ディストリビューションとの関係の詳細については、「」を参照してくださいFedora との関係

AL2 と比較した AL2023 でのコンパイラのトリプレット変更の詳細についてはAL2、「」を参照してくださいコンパイラトリプレット

GCC 14

AL2023 は、デフォルトの GCC 11 と一緒にインストールできるオプションのコンパイラとして GCC 14 を提供します。 14 GCC には最新の言語機能と最適化が含まれており、新しい C、C++、または Fortran 標準のサポートを必要とするプロジェクトに適しています。

14 GCC をインストールするには、次のコマンドを使用します。

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

14 GCC コンパイラは、デフォルトの 11 GCC との競合を避けるため、バージョン固有のコマンド名でインストールされます。

  • 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)

注記

11 GCC と GCC 14 の両方を同じシステムに同時にインストールできます。デフォルトの gccg++、および gfortran コマンドは引き続き 11 GCC を使用し、バージョン固有のコマンドを介して 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 をサポートしています。10 GCC 以上が C2x (ドラフト C23) をサポートし、14 GCC が C23 を完全にサポートしています。

  • C++ 標準: すべてのバージョンで C++98、C++03、C++11、C++14、C++17、および C++20 がサポートされています。GCC11 以降では実験的な C++23 サポートが提供され、14 では C++23 GCC 機能が強化されています。

  • Fortran 標準: すべてのバージョンは主に Fortran 2008 をサポートしており、GCCバージョンに応じて Fortran 2018 の機能のレベルが異なります。

注記

デフォルトの標準は 11 GCC から 14 の間で一貫していますが、 14 GCC では、言語機能のサポートが大幅に改善され、最適化が強化され、診断が強化され、-std=フラグを使用して明示的にリクエストされた場合に新しい標準がより完全に実装されます。