動的読み込みをサポートするプラットフォームでは、標準のランタイムシステムの提供するものに加えて、追加の C プリミティブを提供する C の共有ライブラリ(DLL)を動的にリンクすることができます。 18.1.4 節「Dynamically linking C code with Caml code」 で述べるように、共有ライブラリの名前はリンク時に提供され実行可能バイトコードファイルに記録されます。 ocamlrun はバイトコードプログラムを実行する際にライブラリの位置を特定し、プリミティブへの参照を解決します。
ocamlrun コマンドは以下のディレクトリから上から順に共有ライブラリを探索します。
-I
オプションで指定したディレクトリ。
CAML_LD_LIBRARY_PATH
で指定されたディレクトリ。
ocamlc
の -dllpath
オプションで指定されたディレクトリ(これらのディレクトリは実行可能バイトコードファイルに記録されます)。
ld.conf
ファイルに指定されたディレクトリ。
このファイルは Objective Caml の標準ライブラリディレクトリの中にあり、探索するディレクトリの(一行 1 ディレクトリの)一覧になっています。
ユーザーはよく使う共有ライブラリのディレクトリをこのファイルに追加することができます。
ただし、インストールの一貫性から、 ld.conf
ファイルに設定を追加するよりも、システムの stublibs
ディレクトリに直接共有ライブラリをインストールことを推奨します。
/lib
や /usr/lib
に、 /etc/ld.so.conf
と環境変数 LD_LIBRARY_PATH
に指定されたディレクトリを加えたものになります。
Windows では、システムディレクトリに環境変数 PATH
に指定されたディレクトリを加えたものになります。