自己格納式の呼び出し可能共有オブジェクトは、実行ファイルに似ていますが、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);