呼び出し可能な共有オブジェクトを作成する (-z[,U][,CC])

COBOL ソースコードファイル (.cbl.CBL、または .cob) を中間コードにコンパイルし、作成された中間コードからオブジェクトコード (.o) ファイルを作成します。更に、このオブジェクトコードをリンクして、動的にロード可能な呼び出し可能な共有オブジェクトを作成します。呼び出し可能な共有オブジェクトファイルの拡張子は .so です。

-g フラグも指定している場合は、作成される呼び出し可能な共有オブジェクトには、デバッグ情報も含まれます。そのため、Animator を使ってこれらをデバッグすることができます。

cob コマンドには、COBOL ソースコードファイルのかわりに中間コードファイルを指定することができます。中間コードを指定すると、中間コードからオブジェクトコードが生成されます。 cob コマンドには、オブジェクトモジュールファイル (.o) を指定することもできます。この場合、オブジェクトモジュールは、システムリンカ (ld) でリンクされ、動的にロード可能な呼び出し可能な共有オブジェクトが作成されます。

U オプションを指定すると、未定義のシンボルが検知された場合にエラーメッセージが発行されます。

-z フラグに CC オプションを指定すると、COBOL オプジェクトと C++ のオプジェクトをリンクさせて、1 つの呼び出し可能な共有オブジェクトにすることができます。 C++ ソースファイル (.C) を指定すると、まず C++ コンパイラが起動され、C++ ソースファイルがオブジェクトコードにコンパイルされます。

たとえば、C++ プログラム、 cprg.C と、COBOL プログラム、 cobprg.cbl をリンクする場合は、コマンドを次のように指定します。

cob -z,CC cobprg.cbl cprg.C 

次の例では、-z フラグを使用して実行できるプロセスのタイプを示します。

cob のコマンド行
出力ファイル
cob -z  tmp/a.cbl a.inta.so
cob -z b.cbl b.intb.so
cob -z a.int a.so
cob -z c.o c.so
cob -zg a.cbl a.inta.idya.so