コマンド ラインで cob -x に -l フラグを使用すると、共有ライブラリ ファイルにリンクしたシステムの実行可能アプリケーション ファイルを作成したり、アーカイブ ファイルを組み込んだシステムの実行可能アプリケーション ファイルを作成することができます。コマンド ラインは、次の形式で入力します。
cob -x filenames [-L dir] [-l name]
これにより、すべてのアプリケーション プログラム、およびサブプログラムは、デフォルトの COBOL ランタイム システムのライブラリ、およびオペレーティング システムのサポート ライブラリと同様に、指定されたライブラリにもリンクされます。このようにして作成されたシステムの実行可能ファイルでは、実行時に、実行が主要エントリ ポイントに渡る前に、指定された共有ライブラリがあらかじめロードされます。
システムの実行可能ファイルを作成する際に、共有ライブラリにある参照先モジュールのコードは、ユーザーのシステムの実行可能ファイルには組み込まれません。代わりに、このようなモジュールが実行時に参照されると、制御がそのモジュールに渡される前に、該当する共有ライブラリが、共有ライブラリ ファイルからメモリにロードされます。
cob コマンドでは、ベース名が同じである場合は、アーカイブ ライブラリより共有ライブラリが優先して使用されます。cob フラグでライブラリ名が指定されると、cob では、その名前が共有ライブラリ名と解釈されますが、指定された名前のライブラリが存在しない場合は、同じ名前のアーカイブ ライブラリが使用されます。
たとえば、cob のコマンド ラインで、abc と xyz という 2 つのライブラリを指定する場合は、次のように入力します。
cob -x prog.cbl -labc -lxyz
ライブラリ libxyz.so、libxyz.a、および libabc.a が存在する場合に、参照解決のために検索されるのは、libxyz.so および libabc.a のみです。libxyz.a は検索されません。
共有ライブラリ ファイル内のサブプログラムが参照されている場合は、ライブラリ全体がリンクされます。これに対し、アーカイブ ライブラリ内のサブプログラムが参照されている場合は、参照されているサブプログラムのみがリンクされます。そのため、共有ライブラリ ファイルのサブプログラムは、参照されていないものでも動的ローダーで使用できますが、アーカイブ ライブラリのものは使用できません。