cob -z オプションは、認識されたソース コード プログラムに加え、入力として .int ファイルおよびシステム オブジェクト (.o) ファイルを受け入れます。したがって、C と C++ のソースおよびオブジェクト コード (あるいはその両方) を、呼び出し可能な共有オブジェクトにリンクできます。
たとえば以下のコマンドは、 COBOL プログラム mycobol.cbl および myint.int、C ソース コード myc.c、およびオブジェクト ファイル myobj.o を使用して myapp.so を作成します。オブジェクト ファイルには、COBOL、C、C++ などの言語や、サード パーティ システムのオブジェクト ファイルを使用できます。メインのエントリ ポイントは myentry として指定されます。これは指定された任意のモジュールに含めることができます。
cob -zo myapp.so mycobol.cbl myint.int myc.c myobj.o
-e myentry
C++ を含む呼び出し可能な共有オブジェクトを作成する際には、-z,CC オプションを使用して、C++ コンパイラで最後の呼び出し可能な共有オブジェクトを作成するようにします。たとえば以下のコマンドは、 COBOL プログラム mycobol.cbl、C ソース コード myc.c、および C++ ソース ファイル mycpp.C を使用して myapp.so を作成します。メインのエントリ ポイントは myentry として指定されます。これは指定された任意のモジュールに含めることができます。
cob -z,CC -o myapp.so mycobol.cbl myc.c mycpp.C -e myentry
共有ライブラリは、-l および -L cob オプションを試用して、呼び出し可能な共有オブジェクトにリンクできます。呼び出し可能な共有オブジェクトがロードされると共有ライブラリもロードされ、呼び出し可能な共有オブジェクトがアンロードされると共有ライブラリもアンロードされます。たとえば以下のコマンドは、共有ライブラリ libmylib.so を作成してから、呼び出し可能な共有オブジェクト myapp.so にリンクします。実行時に myapp.so がロードされると、オペレーティング システムは共有ライブラリ libmylib.so を探索してロードします。
cob -Z mylib.cbl myobj.o cob -zo myapp.so myprog.cbl myc.c -L. -lmylib -e myentry
呼び出し可能な共有オブジェクトは、必ずしも COBOL を含んでいる必要はなく、C や C++ のオブジェクトやサード パーティ提供のオブジェクトを含んでいても構いません。
C、C++、またはサード パーティのオブジェクトは、呼び出し可能な共有オブジェクトや共有ライブラリにリンクできます。これを利用して、たとえば、サード パーティ製品がマシンにインストールされていない環境に対応できるようにアプリケーションをコーディングできます。そのためには、サード パーティのオブジェクトや共有ライブラリを、システム実行可能ファイルではなく、呼び出し可能な共有オブジェクトにリンクします。必要に応じて、COBOL ON EXCEPTION 構文を使用し、この呼び出し可能な共有オブジェクトをロードします。サード パーティの製品がインストールされていない場合は、呼び出し可能な共有オブジェクトはロードされず、コードの ON EXCEPTION ルートが使用されます。