COBOL2002 使用の手引 手引編


34.1.2 コンパイルとリンクを別々に実行する方法

COBOLプログラムが複数ある場合,あらかじめccbl2002コマンドでオブジェクトファイルを作成しておき,その後ccbl2002コマンドやccコマンドでオブジェクトファイルをリンクして実行可能ファイルを生成できます。

〈この項の構成〉

(1) ccbl2002コマンドによるリンク方法

ccbl2002コマンドでコンパイルとリンクを別々に実行する方法を,次に示します。

[図データ]

ccbl2002コマンドの指定

まず,COBOLプログラム"test01.cbl"および"test02.cbl"をコンパイルし,オブジェクトファイルを生成します。コンパイルだけを実行し,リンクを実行しない場合は,ccbl2002コマンドに-Compile,NoLinkオプションを指定します。

ccbl2002 -Main,System test01.cbl -Compile,NoLink
ccbl2002 test02.cbl -Compile,NoLink

次に,生成された"test01.o"および"test02.o"をccbl2002コマンドを使用してリンクします。

ccbl2002 test01.o test02.o -OutputFile test03

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

(2) ccコマンドによるリンク方法

ccコマンドでコンパイルとリンクを別々に実行する方法を,次に示します。

[図データ]

ccbl2002コマンドの指定

まず,COBOLプログラム"test01.cbl"および"test02.cbl"をコンパイルし,オブジェクトファイルを生成します。コンパイルだけを実行し,リンクを実行しない場合は,ccbl2002コマンドに-Compile,NoLinkオプションを指定します。

ccbl2002 -Main,System test01.cbl test02.cbl -Compile,NoLink

次に,生成された"test01.o"および"test02.o"をccコマンドを使用してリンクします。

cc test01.o test02.o -o test03 -L/opt/HILNGcbl2k/lib -lcbl2k
   -lcbl2kml -lm

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

-Lオプションに指定する検索パスや-lオプションに指定するライブラリ名については,「34.1.5 ccコマンドおよびldコマンドの-lオプション」の「(1) COBOL2002実行時ライブラリを使用する場合」を参照してください。

注意事項
  • AIXシステムでは,cc/ldコマンドで特にオプションを指定しない場合,静的な参照関係がないファイルは,リンク対象になりません。また,COBOL2002 V4より前に作成したCOBOLオブジェクトやCプログラムのオブジェクトを混在させる場合も,静的な参照関係がないファイルは,リンク対象にならないことがあります。

    そのため,COBOL2002 V4より前に作成したCOBOLオブジェクトやCプログラムのオブジェクトを混在させる場合,静的な参照関係がないファイルをリンク対象とするには,-bgcbypassリンカオプションを指定してください。

  • Linux(x86) COBOL2002で生成したオブジェクトを,ccコマンドを使用してリンクする場合,32bitアプリケーションとしてリンクしなければなりません。OSがLinux(x64)の場合は,-m32オプションの指定が必要です。なお,ccコマンドのオプションの詳細は,システムのマニュアルを参照してください。