cob の -l フラグとともに指定したライブラリがシステム リンカーによって検索される順序を変更します。-L オプションは、cob のコマンド ラインで -l オプションの前に指定した場合にのみ有効です。
cob の -L フラグの効果は、システム リンカー ld の -L オプションと同じです (このリンカー オプションの詳細については、ご利用のオペレーティング システムのドキュメントを参照してください)。通常、ld では、あらかじめ定義されたデフォルト ディレクトリのセット (通常は /usr/lib および /lib ですが、システムによって異なります) でのみライブラリが検索されます。-L フラグを指定すると、システム リンカーは、指定されたディレクトリで最初にこれらのライブラリを検索します。-L オプションの指定順序は重要で、ディレクトリは指定された順番に検索されます。
環境変数 LD_LIBRARY_PATH または LIBPATH (AIX のみ) のパスは、-L、+L のディレクトリの後に、ただしデフォルトのパスよりも前に検索されます。
次に、+L および -L フラグの使用例を示し、ライブラリが検索されるディレクトリの順序を説明します。
cob +L /usr/mylib +llib1 object.o -L /usr/grouplib -llib2 +llib3
オプションがシステム リンカーに渡される相対順序は次のようになります。
「+」のオプションは ld に渡される際に「-」のオプションになり、リストの最後に移動されることに注意してください。
これは、ld がどのような順序でライブラリを検索するか、またどのディレクトリ内を検索するかに影響します。原則として、ld は次の順序でライブラリ (-lname で指定) を検索します。
AIX では、LD_LIBRARY_PATH ではなく、LIBPATH が使用されます。
上記の例では、ld は、次の順序で (ディレクトリ、ライブラリ) の組み合わせを使用してライブラリを検索します。
すべての検索パスが検索されるのは、それ以前の検索パスすべてで、「ファイルが見つからない」という状態が返された場合のみです。