自己格納式の呼び出し可能共有オブジェクト

自己格納式の呼び出し可能共有オブジェクトは、実行可能ファイルに似ていますが、COBOL 以外の実行可能ファイルによってロードされるように設計されています。cob コマンドを使用できない場合にのみこのタイプのオブジェクトを使用して、DB2 などのサード パーティの実行可能ファイルで使用する場合などにオブジェクトをメイン実行可能ファイルに再リンクします。

次のように、-y cob フラグを使用して、自己格納式の呼び出し可能共有オブジェクトを作成します。

cob -y obj1.o obj2.o obj3.o

デフォルトでは、生成されるファイルのベース名にはリンクされる最初のファイルの名前が使用され、ファイル拡張子 .so が付けられます。上記の例では、ファイル obj1.so になります。ベース名でメイン エントリ ポイントが形成されますが、これは -e フラグを使用してオーバーライドできます。

入力ファイルとしては、.gnt ファイル以外のタイプのファイルを指定できます。オブジェクト モジュール ファイル (.o) を使用する場合、これらのファイルはシステム リンカー (ld) を使用してリンクされます。また、CC オプションを使用して、C++ オブジェクトをライブラリ ファイルにリンクすることもできます。C++ ソース ファイルが指定されると、はじめに C++ コンパイラが起動されてこれらをオブジェクトにコンパイルします。

自己格納式の呼び出し可能共有オブジェクトをロードするには、次のように dlopen() 関数を使用する必要があります。

handle=dlopen("obj1.so", RTLD_GLOBAL|RTLD_NOW);
制約事項: 一度にプロセスにロードできる自己格納式の呼び出し可能共有オブジェクトは 1 つだけです。したがって、同じプロセスに別の自己格納式の呼び出し可能共有オブジェクトをロードする前に、現在の自己格納式の呼び出し可能共有オブジェクトをアンロードする必要があります。