第2章 GNU コンパイラーコレクション (GCC)


GNU コンパイラーコレクション (通常は GCC の省略形) は、幅広いプログラミング言語に対応する移植可能なコンパイラースイートです。

Red Hat Developer Toolset には GCC 12.2.1 が同梱されています。このバージョンは、Red Hat Enterprise Linux に含まれるバージョンよりも新しいもので、バグ修正および機能強化が数多く追加されました。

2.1. GNU C コンパイラー

2.1.1. C コンパイラーのインストール

Red Hat Developer Toolset では、GNU C コンパイラーが devtoolset-12-gcc パッケージで提供され、「Red Hat Developer Toolset のインストール」 の説明に従って devtoolset-12-toolchain で自動的にインストールされます。

2.1.2. C コンパイラーの使用

コマンドラインで C++ プログラムをコンパイルするには、以下のように gcc コンパイラーを実行します。

$ scl enable devtoolset-12 'gcc -o output_file source_file...'

これにより、現在の作業ディレクトリーに output_file という名前のバイナリーファイルが作成されます。-o オプションを省略すると、コンパイラーはデフォルト a.out でという名前のファイルを作成します。

複数のソースファイルで構成されるプロジェクトで作業する場合、各ソースファイルのオブジェクトファイルを最初にコンパイルしてから、これらのオブジェクトファイルをリンクすることが一般的です。これにより、単一のソースファイルを変更する場合は、プロジェクト全体をコンパイルせずにこのファイルのみを再コンパイルできます。コマンドラインでオブジェクトファイルをコンパイルするには、以下のコマンドを実行します。

$ scl enable devtoolset-12 'gcc -o object_file -c source_file'

これにより、object_file という名前のオブジェクトファイルが作成されます。-o オプションを省略すると、コンパイラーは、ファイル .o 拡張子が付いたソースファイルからという名前のファイルを作成します。オブジェクトファイルをリンクし、バイナリーファイルを作成します。

$ scl enable devtoolset-12 'gcc -o output_file object_file...'

この scl ユーティリティーを使用してコマンドを実行すると、これを Red Hat Enterprise Linux システムに優先して使用する Red Hat Developer Toolset バイナリーで実行することができることに注意してください。これにより、デフォルトで Red Hat Developer Toolset gcc でシェルセッションを実行できます。

$ scl enable devtoolset-12 'bash'
注記

使用中の gcc のバージョンを確認するには、以下を行います。

$ which gcc

Red Hat Developer Toolset の gcc 実行可能なパスは、/opt で始まります。以下のコマンドを使用して、バージョン番号が Red Hat Developer Toolset gcc と一致することを確認することができます。

$ gcc -v

例2.1 コマンドラインでの C プログラムのコンパイル

以下の内容を含むソースファイル hello.c について考えてみましょう。

#include <stdio.h>

int main(int argc, char *argv[]) {
  printf("Hello, World!\n");
  return 0;
}

Red Hat Developer Toolset の gcc コンパイラーを使用して、このソースコードをコマンドラインでコンパイルします。

$ scl enable devtoolset-12 'gcc -o hello hello.c'

これにより、現在の作業ディレクトリーに hello という名前のバイナリーファイルが作成されます。

2.1.3. C プログラムの実行

プログラムを gcc コンパイルすると、実行可能なバイナリーファイルが作成されます。コマンドラインでこのプログラムを実行するには、実行ファイルがあるディレクトリーに移動し、これを実行します。

$ ./file_name

例2.2 コマンドラインでの C プログラムの実行

例2.1「コマンドラインでの C プログラムのコンパイル」 にあるように hello バイナリーファイルを正常にコンパイルしたと仮定して、シェルプロンプトで次のコマンドを実行します。

$ ./hello
Hello, World!
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.