コンパイルにより生成されるファイル タイプ

プログラムを実行またはデバッグするには、実行可能な形式にする必要があります。コンパイラは、次のタイプのファイルを生成できます。

実行可能コード
実行可能コードは、コンパイルとリンクを一度に実行して生成します。

実行可能ファイルには、ファイル名拡張子 .exe がある場合(Windows) または拡張子がない場合(UNIX) があります。

実行可能コードを作成するには、COBOL プロジェクトまたはリモート COBOL プロジェクトのどちらかが必要です。[Project > Properties > Micro Focus > Build Configuration] を選択し、[All Executable Files] または [Single Executable File] の [Target types] オプションを選択して、構成を作成または編集します。

オブジェクト コード
オブジェクト コード ファイルは、プロジェクトをビルドする際に作成されます。オブジェクト コード ファイルは実行可能ではなく、ランタイム システムにリンクして実行可能ファイルを生成する必要があります。

デフォルトでは、オブジェクト コード ファイルには、拡張子 .obj(Windows) または.o(UNIX) が付けられます。

.exe ファイルまたは .dll ファイル(Windows) または実行可能ファイル、呼び出し可能な共有オブジェクト ファイル、または共有ライブラリ ファイル(UNIX) を作成するには、オブジェクト コード ファイルをリンクする必要があります。

Java バイトコード
Java バイトコードは、Java 仮想マシン (JVM) 上で実行可能です。

IDE では、COBOL プロジェクトを作成する場合と同様の手順で JVM COBOL プロジェクトを作成でき、構成オプションの多くは両者に共通しています。[File > New > COBOL JVM Project] を選択します。

Java バイトコード ファイルのファイル名には、拡張子 .class が付けられます。

中間コード
制約事項: JVM COBOL コードを .int ファイルにビルドすることはできません。
中間コード ファイルは、通常、テストおよびデバッグ目的に使用します。コンパイラは、プログラム構文をチェックするとき、その最初の段階で中間コード ファイルを作成します。コンパイラは、デバッガーが使用するディクショナリ ファイルも作成します。中間コード ファイルのコンパイルは高速です。

中間コード ファイルのファイル名には、拡張子 .int が付けられます。

.int ファイルは動的にロード可能なファイルであり、システム実行可能ファイルにリンクする必要はありません。これらのファイルを実行可能ファイルとしてユーザーにシッピングできますが、この用途には .exe ファイルおよび .dll ファイルを使用することをお奨めします。

中間コード ファイルをコンパイルするには、次のプロパティを設定します。
  1. [Project > Properties > Micro Focus > Build Configuration] をクリックし、[All Int/Gnt Files] の [Target types] オプションを選択して、構成を作成または編集します。
  2. [Project > Properties > Micro Focus > Project Settings > COBOL] をクリックし、[Compile to .gnt] が選択されていないことを確認します。
ヒント: ビルド構成のプロパティで [Override Project Settings] をオンにして、一連の .int ファイルまたは .gnt ファイルを特定のビルド構成に対して生成するように指定できます。1 つのビルド構成から .int ファイルおよび .gnt ファイルを混ぜ合わせて生成するには、個別のファイル プロパティを変更します。個別のファイルを右クリックして、[Override Project Settings] をオンにします。次に、[Compile to .gnt] をオンまたはオフにして、.int にコンパイルするか .gnt にコンパイルするかを選択します。
生成されたコード
制約事項: JVM COBOL コードを .gnt ファイルにビルドすることはできません。

要求に応じて、コンパイラは第 2 段階で生成されたコードを作成します。生成されたコードのコンパイルは中間コードよりも低速ですが、作成されるコードはより高速に実行します。

生成されたコード ファイルをテストおよびデバッグに使用します。生成されたコードは中間コードより高速に実行するので、大きなプログラムのデバッグやブレークポイントの間隔が広いプログラムのデバッグなどに便利です。

生成されたコード ファイルのファイル名には、拡張子 .gnt が付けられます。

.gnt ファイルは動的にロード可能なファイルであり、システム実行可能ファイルにリンクする必要はありません。これらのファイルを実行可能ファイルとしてユーザーにシッピングできますが、この用途には .exe ファイルおよび .dll ファイルを使用することをお奨めします。

生成されたコード ファイルをコンパイルするには、次のプロパティを設定します。
  1. [Project > Properties > Micro Focus > Build Configuration] をクリックし、[All Int/Gnt Files] の [Target types] オプションを選択して、構成を作成または編集します。
  2. [Project > Properties > Micro Focus > Project Settings > COBOL] をクリックし、[Compile to .gnt] を選択します。
ダイナミック リンク ライブラリ (Windows) または呼び出し可能な共有オブジェクト (UNIX)
ダイナミック リンク ライブラリ (Windows) または呼び出し可能な共有オブジェクト (UNIX) は、実行時に必要に応じて、すなわちメイン エントリ ポイントとして (たとえば run (Windows) または cobrun (UNIX) により) 参照されている場合または COBOL CALL 構文により参照されている場合に、動的にロードされます。ダイナミック リンク ライブラリ (Windows) または呼び出し可能な共有オブジェクト (UNIX) のすべてのエントリ ポイントがキャンセルされると、ファイルはアンロードされすべての使用メモリが解放されます。

この動作は、.int コードおよび .gnt コードと同じですが、リンクされた共有ライブラリや、システムの実行可能ファイルとは異なります。リンクされた共有ライブラリや、システムの実行可能ファイルは、使用されるかどうかに関わらず、常にプロセスの開始時にロードされます。また、それらのファイルにより使用されているコードとメモリは、プロセスの終了時にのみ解放されます。

ダイナミック リンク ライブラリ (Windows) または呼び出し可能な共有オブジェクト (UNIX) は、複数の COBOL プログラムから構成したり、C や C++ など、他の言語によるプログラムを混在させたりすることができます。また、ダイナミック リンク ライブラリ (Windows) または呼び出し可能な共有オブジェクト (UNIX) をサード パーティが提供するオブジェクト ファイルや共有ライブラリにリンクすることもできます。この動作はシステム実行可能ファイルおよび共有ライブラリに似ていますが、.int ファイルおよび .gnt ファイルとは異なります。これらの場合、各ファイルが 1 つの COBOL プログラムと対応します

ダイナミック リンク ライブラリ (Windows) には、ファイル名拡張子 .dll が付けられます。

呼び出し可能な共有オブジェクト ファイル (UNIX) のファイル名には、拡張子 .so が付けられます。

ダイナミック リンク ライブラリ (Windows) または呼び出し可能な共有オブジェクト (UNIX) を作成するには、COBOL プロジェクトまたはリモート COBOL プロジェクトのどちらかが必要です。[Project > Properties > Micro Focus > Build Configuration] を選択し、[All Native Library Files] または [Single Native Library File] の [Target types] オプションを選択して、構成を作成または編集します。

中間コード ファイルまたは生成されたコード ファイルのバンドル

.int ファイルおよび .gnt ファイルを Micro Focus ライブラリ ファイルにバンドルできます。このバンドルには次の利点があります。

  • ユーザーに配布するファイル数が減り、ファイルのパッケージ化が容易になります。
  • プログラムでライブラリ ファイルに保存されているサブプログラムを呼び出すとき、ライブラリ ファイルとその中にロードされたすべてのプログラムがメモリにロードされます。これによりプログラムの実行を高速化できます。

ライブラリ ファイルには、ファイル名拡張子 .lbr が付けられます。

たとえば、アプリケーションに次のようなプログラムがある場合、
図 1. アプリケーションのプログラム
Programs in application

ProgC および ProgD を生成されたコード ファイルとしてコンパイルし、ライブラリ ファイル mylib.lbr に置くことができます。ProgA が ProgC を呼び出すと mylib.lbr がメモリにロードされ、progc.gntprogd.gnt もロードされます。proga.gntprogb.gntmylib.lbr のほか、トリガー プログラム も併せて配布する必要があります。

.int ファイルおよび .gnt ファイルを .lbr ファイルにパッケージ化するには、次のプロパティを設定します。

  1. [Project > Properties > Micro Focus > Build Configuration] をクリックし、[All Int/Gnt Files] の [Target types] オプションを選択して、構成を作成または編集します。
  2. [Package as .lbr] を選択します。
次回プロジェクトをビルドするとき、プロジェクトは .int または .gnt ファイルを通常どおりビルドし、それらをすべてを .lbr ファイルに含めます。
制約事項: .lbr ファイルは JVM プロジェクトにコンパイルできません。