2.2.2. C++ コンパイラーの使用

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

$ scl enable devtoolset-10 'g++ -o output_file source_file...'

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

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

$ scl enable devtoolset-10 'g++ -o object_file -c source_file'

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

$ scl enable devtoolset-10 'g++ -o output_file object_file...'

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

$ scl enable devtoolset-10 'bash'
注記

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

$ which g++

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

$ g++ -v

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

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

#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {
  cout << "Hello, World!" << endl;
  return 0;
}

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

$ scl enable devtoolset-10 'g++ -o hello hello.cpp'

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