Hitachi

COBOL2002 使用の手引 手引編


34.1.1 コンパイルとリンクを同時に実行する方法

ccbl2002コマンドを使用すると,COBOLプログラムのコンパイルとリンクを同時に実行して,実行可能ファイルを生成できます。

ccbl2002コマンドの詳細については,「32. COBOLソースの作成とコンパイル」を参照してください。

ccbl2002コマンドを使って実行可能ファイルを生成する例を,次に示します。

〈この項の構成〉

(1) 一つのCOBOLプログラムから実行可能ファイルを生成する

一つのCOBOLプログラムをコンパイル,リンクして実行可能ファイルを生成する例を,次に示します。

ソースファイル名称:test01.cbl
       IDENTIFICATION DIVISION.
       PROGRAM-ID. TEST01.
                :
       PROCEDURE DIVISION.
                :
           STOP RUN.
ccbl2002コマンドの指定

COBOLプログラム"test01.cbl"に-Main,Systemオプションを指定し,実行可能ファイル名称に"test02"を指定します。

ccbl2002 -Main,System test01.cbl -OutputFile test02

上記のコマンドを実行すると,実行可能ファイル"test02"が生成されます。

(2) 複数のCOBOLプログラムから実行可能ファイルを生成する

複数のCOBOLプログラムをコンパイル,リンクして実行可能ファイルを生成する例を,次に示します。

[図データ]

ccbl2002コマンドの指定

主プログラムである"test01.cbl"に-Main,Systemオプションを指定し,副プログラムである"test02.cbl"には何も指定しないでccbl2002コマンドを実行します。

ccbl2002 -Main,System test01.cbl test02.cbl -OutputFile test03

上記のコマンドを実行すると,実行可能ファイル"test03"が生成されます。

(3) COBOLプログラムとCプログラムの混在した実行可能ファイルを生成する

COBOLプログラムとCプログラムが混在する実行可能ファイルを生成する例を,次に示します。

[図データ]

ccbl2002コマンドの指定

主プログラムである"test01.cbl"に-Main,Systemオプションを指定し,副プログラムである"test02.c"には何も指定しないでccbl2002コマンドを実行します。

ccbl2002 -Main,System test01.cbl test02.c -OutputFile test03

上記のコマンドを実行すると,実行可能ファイル"test03"が生成されます。

(4) 注意事項

(a) AIXシステムで,オブジェクトファイルを指定して実行可能ファイルを作成する場合の注意事項

  • AIX COBOL2002 V3以前に作成したCOBOLオブジェクトファイル,-OldStyleObjectオプションを指定して作成したCOBOLオブジェクトファイル,Cプログラムのオブジェクトファイルを混在させるときは,-OldLinkOpt,GCBypassオプションを指定してください。-OldLinkOpt,GCBypassオプションの詳細は,「32.5.10 リンクの設定」の「(5) -OldLinkOpt,GCBypassオプション(AIXで有効)」を参照してください。

(b) AIXシステムで,アーカイブファイルを指定して実行可能ファイルを作成する場合の注意事項

  • AIX COBOL2002 V4で作成したオブジェクトファイルを含むアーカイブファイルを指定して実行可能ファイルを作成すると,実行可能ファイルのサイズが,AIX COBOL2002 V3以前に作成した実行可能ファイルのサイズと比べて,極端に肥大化することがあります。このサイズの肥大化は,-OldStyleObjectオプションで回避できます。-OldStyleObjectオプションの詳細,およびサイズの肥大化については,「32.5.10 リンクの設定」の「(6) -OldStyleObjectオプション(AIXで有効)」を参照してください。

  • アーカイブファイル内の静的な参照関係がないオブジェクトファイルは,特にリンカオプションの指定がないと,リンク対象になりません。アーカイブファイル内の静的な参照関係がないオブジェクトファイルをリンク対象とするときは,次のどちらかのリンカオプションを指定してください。

    • アーカイブファイル内のすべてのオブジェクトファイルをリンク対象とするとき

      -bkeepfile:アーカイブファイル名

    • アーカイブファイル内の特定のプログラムのオブジェクトファイルだけをリンク対象とするとき

      -u プログラム名