-y フラグは、cob コマンドに入力されたファイルから自己格納式の呼び出し可能な共有オブジェクト ファイルを作成します。このファイルは COBOL 以外の実行可能ファイルで呼び出すことができます。
入力ファイルとしては、.gnt ファイル以外のタイプのファイルを指定できます。オブジェクト モジュール ファイル (.o) を使用する場合、これらのファイルはシステム リンカー (ld) を使用してリンクされます。
CC オプションを指定すると、ライブラリ ファイルに C++ オブジェクトもリンクできます。C++ (.C) ソース ファイルを指定するとまず、C++ コンパイラが起動され、C++ ソース ファイルがオブジェクト コードにコンパイルされます。
ソース コード ファイルが中間コードにコンパイルされ、オブジェクト コード (.o) ファイルが生成された後、動的にロード可能で自己格納式の呼び出し可能な共有オブジェクトを作成するためにリンクされます。
デフォルトでは、生成される共有オブジェクト ファイルのベース名にはリンクされた最初のオブジェクトの名前が使用され、ファイル名拡張子 .so が使用されます。ベース名でメイン エントリ ポイントが形成されますが、これは -e フラグを使用してオーバーライドできます。
U オプションを指定すると、未定義のシンボルが検知された場合にエラー メッセージが発行されます。
-g フラグも指定している場合は、作成される自己格納式の呼び出し可能な共有オブジェクトには、デバッグ情報も含まれます。そのため、Animator を使ってこれらをデバッグすることができます。
次の例では、-y フラグを使用して実行できるプロセスのタイプを示します。
cob のコマンド ライン | 出力ファイル |
---|---|
cob -y tmp/a.cbl |
a.int、a.idy、a.o、a.so |
cob -y b.cbl |
b.int、b.idy、b.o、b.so |
cob -y a.int |
a.o、a.so |
cob -y c.o |
c.so |
cob -yg a.cbl |
a.int、a.idy、a.o、a.so |
cob -y,CC cobprg.cbl cprg.C |
cobprg.int、cobprg.idy、cobprg.o、cprg.o、cobprg.so |