動的ローダを使用する実行形式の作成方法

Dynamic Loader を使用すると、呼び出し可能な形式のファイルを、実行時に動的にロードすることができます。 >Dynamic Loader は、cob にフラグを使用して、次のようなシステムの実行可能プログラムをビルドする場合にも選択されます。

cob-d symb オプションを指定してビルドしたシステムの実行可能プログラムでは、symb に指定したプログラムが実行時に呼び出された場合に、このプログラムが動的にロードされます。また、このプログラムを静的にリンクするプログラムとして cob に指定すると、cob からエラーが出力されます。

cob に -e"" フラグを指定してビルドしたシステムの実行可能プログラムは、実行時に実行可能ファイルの入口点の指定が必要となります。入口点は、実行時にコマンド行で入口点名を入力して指定します。指定されたプログラムの検索には、Dynamic Loader が使用されます。Dynamic Loader では、指定されたプログラムがリンクされているか、または既にロード済みであるかが確認され、リンクもロードもされていない場合は、プログラムが動的にロードされます。

CALL データ名文および ON EXCEPTION 句が含まれる CALL 文では、暗黙的に Dynamic Loader が使用されます。しかし、たとえば、呼び出されるサブプログラムが C のルーチンである場合など、動的にロードしたくない場合もあります。サブプログラムが Dynamic Loader を使って呼び出された場合でも、そのサブプログラムがシステムの実行可能ファイルリンクされていれば、実行時にはリンクされているバージョンが使用され、このサブプログラムは動的にロードされません。

アーカイブライブラリにサブプログラムがあり、このサブプログラムを動的にロードしたくない場合は、次のいずれかの方法でプログラムをリンクしてください。

これ以外に、cob に -Z フラグを使用して、アーカイブライブラリを共有ライブラリに変える方法もあります。