ソース コードのコンパイル

デフォルトでは、Eclipse IDE は自動的にプロジェクトをビルドするように設定されます。新しい COBOL または BMS ファイルを Bankdemo プロジェクトに追加すると、そのたびに IDE は自動ビルド (コンパイル) を開始します。
重要:実行可能ファイルを作成するには、Enterprise Developer または Enterprise Developer for z Systems が必要です。プロジェクトのビルドは、Enterprise Developer Connect ではサポートされていません。

自動ビルドをオフにするには、次の操作を行います。

  • [Project] をクリックして、[Build Automatically] を無効にします。

手動でビルドを開始するには、次の操作を行います。

  • [Project > Build Project] をクリックします。

この場合のビルドでは、変更されたファイルがチェックされ、次の 2 つのことが行われます。

  • 変更の影響を受けたファイルをすべてコンパイルする
  • ビルドされたファイルを必要に応じて再リンクする

自動ビルドをオンにするには、次の操作を行います。

  • [Project] をクリックして、[Build Automatically] を有効にします。

COBOL コンパイラ制御

Micro Focus COBOL コンパイラは、多数の異なる COBOL 方言バリエーションをコンパイルすることができます。また、EXEC CICS または EXEC SQL 文を含む COBOL コードをコンパイルすることもできます。コンパイラは、ビルド時にコンパイラに渡される一連の「指令」によって制御されます。指令は、プロジェクト レベルまたはコンポーネント レベルで設定できます。

多くの場合、指令はプロジェクト レベルでのみ設定できます。つまり、プロジェクト内のすべてのコンポーネント ファイルはそれらの指令を使用します。場合によっては、異なる指令でコンパイルする必要があるコンポーネントが存在することがあります。その場合は、プロジェクト設定をオーバーライドするコンポーネント レベルで指令を設定できます。

例えば、プロジェクト内のほとんどのプログラムは Enterprise COBOL for z/OS を使用でき、ごく少数のプログラムのみが VS COBOL II を使用できるとします。この場合は、Enterprise COBOL for z/OS の指令をプロジェクト レベルで設定し、VS COBOL II をそれぞれの COBOL プログラムで設定します。

Bankdemo アプリケーションでは、必要なコンパイラ指令がファイル上で既に設定されています。ビルド時には、IDE が COBOL コンパイラを呼び出してソースをコンパイルし、いくつかのファイルを作成します。これらのビルド済みファイルは異なる場合がありますが、Bankdemo アプリケーションの各 COBOL プログラムは、コンパイルして次の 3 つのタイプのファイルを生成します。

ファイル タイプ 機能
.dll - ダイナミック リンク ライブラリ 事実上、コンパイラがプログラムごとに作成する実行可能モジュールです。
.idy - デバッガー情報 モジュールのデバッグを可能にするファイルであり、コンパイラによって作成されます。
.obj - オブジェクト ファイル .dll の生成中にコンパイラが作成する一時ファイルです。これらのファイルは削除できます。

BMS コンパイラ制御

COBOL の場合と同様に、BMS コンパイルもプロジェクト レベルとコンポーネント レベルの両方で制御されます。

BMS コンパイラは、次の 2 つのタイプのファイルを生成します。

ファイル タイプ 機能
.mod - BMS 実行可能ファイル BMS ソースに関連する実行可能モジュールであり、BMS コンパイラによって作成されます。
.cpy - コピーブック COBOL プログラムで使用する BMS マッピングが含まれているコピーブックです。

コンパイラ リスティングの生成

ユーザーは、完全に展開されたコンパイラ リスティング ファイルをビルド中に作成するように IDE を設定できます。コンポーネント レベルで指令を設定する例を次に示します。

  1. Team Developer Tree View で [ZBNKPRT1.cbl] を右クリックし、[Properties] をクリックします。
  2. 左側のウィンドウで [COBOL] をクリックし、[Enable file specific settings] をオンにします。
  3. [Generate listing file] をオンにして、[OK] をクリックします。

ビルド時に、ソース リスティング ファイル (ZBNKPRT1.lst) がプロジェクト ディレクトリ (この場合は C:\MFETDUSER\Bankdemo\Projects\Eclipse\Bankdemo\Listing) の Listing サブフォルダーに生成されます。リスティング ファイルには、完全に展開されたソース ファイル、起動時のいくつかのコンパイラ システム情報、アスタリスクで強調表示されたコンパイラ エラーが含まれます。このリスティング ファイルは IDE で表示できます。Listing フォルダーにある .lst ファイルをダブルクリックしてください。

エラーを伴った COBOL プログラムのコンパイル例

いくつかのコンパイラ エラーをプログラムの 1 つに導入すると、どのようにコンパイラがエラーを処理するのかを確認できます。

  1. Team Developer Tree View で、[ZBNKPRT1.cbl] をダブルクリックします。
  2. 021600 行付近の手続き部の先頭まで、プログラムを数ページだけページ ダウンします。
  3. 次のように、いくつかの構文エラーを導入します。
    • 21800 行で、RUN-TIME を RUN-TME に変更
    • 22100 行で、SPACES を SPOCES に変更
    • 22900 行で、END-IF の後にピリオドを配置
    • いずれかのコピーブックを c:\MFETDUSER\Bankdemo\Sources\Copybook から c:\MFETDUSER\Bankdemo\Sources\jcl に移動します。コピーブック エントリのコンテキスト メニューにある [MOVE...] アクションを使用します。

    エラーは赤色の波線で下線が引かれ、エラーを含む各行の左には色付きのバーが追加されます。

  4. 下線付きの項目にカーソルを置くと、エラーが何であるかを説明するポップアップが表示されます。
  5. プログラムを保存します。

    これにより、プロジェクトのビルドがトリガーされます。リスティング ファイルも更新されます。[Console] ビュー内のメッセージは、ビルド エラーが存在することを示します。

  6. [Problems] タブをクリックして、エラーのリストを表示します。

    このタブが表示されていない場合は、[Window > Show View > Problems] をクリックして開くことができます。

    ヒント:列見出しをクリックして、リストを適切な順序で並べ替えます。例えば、[Program] という見出しをクリックして、エラーをプログラムで並べ替えます。
  7. リスト内のエラーをダブルクリックして、エラーが含まれているコード行の上にカーソルを置きます。
  8. コピーブック エラーを修正するには、次の操作を行います。
    1. [Problems] ビューで、不明なコピーブックに関連するエラーを見つけて、エラーのリストでその行をダブルクリックします。

      これにより、そのコピーブックの COPY 文を含む行にカーソルが配置されます。

    2. COPY 文を右クリックし、[Quick Fix] を選択します。

      [Quick Fix] ウィンドウが表示されます。

    3. [Enable copybook path...] をダブルクリックします。

      このコピーブックを含むディレクトリがプロジェクトのコピーブック パスにない、という内容のメッセージが表示されます。

    4. [Yes] をクリックして、先ほどこのコピーブックを移動した c:\MFETDUSER\Bankdemo\Sources\jcl フォルダーをプロジェクトのコピーブック パスに追加します。

      これにより、プロジェクトのリビルドがトリガーされます。今度はコピーブックが見つかるため、正常にコンパイルされます。

  9. 次のようにして、リスティング ファイル (ZBNKPRT.lst) 内のエラーをチェックします。
    1. Listing フォルダーでこの .lst ファイルをダブルクリックします。

    構文エラーを含む行には、アスタリスク (**) が付いています。

  10. IDE でエラーを修正し、ファイルを保存します。

    これで、ビルドのエラーはなくなるはずです。

    注:他のプロジェクトでコピーブックが見つからなくならないように、コピーブックを元のディレクトリに戻しておいてください。