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

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

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

実行可能ファイルには、ファイル名拡張子 .exe がある場合 があります。

実行可能コードを生成するには、プロジェクト プロパティの [Output Type] 設定を変更する必要があります。

オブジェクト コード
オブジェクト コードは、ソース コード ファイルをコンパイルして生成できるほか、テスト済みの .int ファイルをコンパイルして生成することもできます。オブジェクト コード ファイルは実行可能ではなく、ランタイム システムにリンクして実行可能ファイルを生成する必要があります。

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

.exe ファイルまたは .dll ファイル を作成するには、オブジェクト コード ファイルをリンクする必要があります。

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

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

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

.int ファイルにコンパイルするには、プロジェクトを INT/GNT 出力タイプにコンパイルするように設定する必要があります。デバッグ構成では、INT/GNT プロジェクトはデフォルトで .int コードにコンパイルされます。リリース構成では、.gnt コードが生成されます。リリース構成のプロジェクト プロパティの [COBOL] タブで .gnt を無効にできます。

プロジェクト内の個々の COBOL プログラムのビルド設定を変更すると、これらのプログラムを .int または .gnt のいずれかにコンパイルできます。

  1. ソリューション エクスプローラーで、プロパティを変更する COBOL プログラムを右クリックし、[Properties] をクリックします。
  2. ファイルのプロパティで [COBOL] タブをクリックし、[Compile to .gnt] を [No] または [Yes] のいずれかに設定します。
    注: デバッグ構成では、デフォルトですべてのファイルが .int コードを生成するように設定されます。リリース構成では、ビルドは .gnt コードを生成するように設定されます。ファイルまたはプロジェクトのプロパティで設定を変更できます。
  3. [OK] をクリックします。
生成されたコード

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

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

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

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

生成されたコード ファイル (.gnt) をコンパイルするには、プロジェクトを INT/GNT 出力タイプにコンパイルするように設定する必要があります。デフォルトでは、デバッグ構成では、このプロジェクト タイプは .int コードを生成するように設定されています。リリース構成では、.gnt コードを生成するように設定されます。デバッグ構成のプロジェクト プロパティの [COBOL] タブで .gnt を有効にできます。

  1. [Project > MyProject Properties] をクリックしてプロジェクトのプロパティに移動します。
  2. [COBOL] タブをクリックします。
  3. [Compile to .gnt] をオンにして変更内容を保存します。

プロジェクト内の個々の COBOL プログラムのビルド設定を変更すると、これらのプログラムを .int または .gnt のいずれかにコンパイルできます。

  1. ソリューション エクスプローラーで、プロパティを変更する COBOL プログラムを右クリックし、[Properties] をクリックします。
  2. ファイルのプロパティで [COBOL] タブをクリックし、[Compile to .gnt] を [No] または [Yes] のいずれかに設定します。
    注: デバッグ構成では、デフォルトですべてのファイルが .int コードを生成するように設定されます。リリース構成では、ビルドは .gnt コードを生成するように設定されます。ファイルまたはプロジェクトのプロパティで設定を変更できます。
  3. [OK] をクリックします。
ダイナミック リンク ライブラリ
ダイナミック リンク ライブラリは、実行時に必要に応じて、すなわちメイン エントリ ポイントとして (たとえば run により) 参照されている場合または COBOL CALL 構文により参照されている場合に、動的にロードされます。ダイナミック リンク ライブラリ のすべてのエントリ ポイントがキャンセルされると、ファイルはアンロードされすべての使用メモリが解放されます。

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

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

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

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

.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 > MyProject Properties] をクリックしてプロジェクトのプロパティに移動します。
  2. [Application] タブをクリックします。

    プロジェクトの [Output type] を [INT/GNT] に設定する必要があります。

  3. [Package as .lbr] をオンにして変更内容を保存します。

    次回プロジェクトをビルドするとき、プロジェクトは .lbr にコンパイルされます。

重要: You cannot debug a project that compiles to .int or .gnt code if it is set to package the output files as an .lbr file. Before you can debug such projects you need to disable the setting Package as .lbr on the Application page in your project's properties.