オプションの相対順序を維持したまま、検索アルゴリズムを変更して、オプションをシステムリンカに渡す (-L dir)

cob の -l フラグとともに指定したライブラリが、システムリンカに検索される順番を変更します。-L オプションは、cob のコマンド行で -l オプションの前に指定した場合にのみ有効です。

cob の -L フラグの効果は、システムリンカ、ld の -L オプションと同じです (このリンカオプションに関する詳細は、ご利用のオペレーティングシステムのマニュアルを参照してください)。 デフォルトでは、これらのライブラリは、ディレクトリ、 /lib (または /usr/ccs/lib)、および /usr/lib で最初に検索されますが、-L フラグを指定すると、システムリンカは、指定されたディレクトリで最初にこれらのライブラリを検索します。-L オプションの指定順序は重要で、ディレクトリは指定された順番に検索されます。

環境変数 LD_LIBRARY_PATH または LIBPATH (AIX システムの場合)、または SHLIB_PATH (HP/UX システムの場合) に指定されているパスは、-L、+L、およびデフォルトのパスよりも先に検索されます。

次に、+L、および -L フラグの使用例を示し、ライブラリが検索されるディレクトリの順序を説明します。

cob +L /usr/mylib +llib1 object.o -L /usr/grouplib -llib2 +llib3

オプションがシステムリンカに渡される相対順序 (各ライブラリに関して、すべての検索パスを検索する必要がある場合) は次のようになります。

  1. object.o

  2. -L $LD_LIBRARY_PATH -llib2

  3. -L  /usr/grouplib -llib2

  4. -L  /lib (or /usr/ccs/lib) -llib2 -L /usr/lib -llib2

  5. -L $LD_LIBRARY_PATH -llib1

  6. -L  /usr/grouplib -llib1 -L /usr/mylib -llib1

  7. -L /lib -llib1 -L /usr/lib -llib1

  8. -L $LD_LIBRARY_PATH -llib3

  9. -L /user/grouplib -llib3 -L /user/mylib -llib3

  10. -L /lib -llib3 -L /usr/lib -llib3

上記の例の LD_LIBRARY_PATH は、LIBPATH または SHLIB_PATH のことを示し、どちらに該当するかはご利用の UNIX システムによって異なります。

すべての検索パスが検索されるのは、それ以前の検索パスすべてで、「ファイルが見つからない」という状態が返された場合のみです。

他のすべてのオプションを渡した後、検索アルゴリズムを変更して、オプションをシステムリンカに渡す (+L dir)

このオプションは、相対順序が保存されないことを除いて、-L と同じ役割を持ちます。+L オプションは、他のすべてのオブジェクト、およびリンカのオプションが渡された後、(-L オプションとして) システムリンカに渡されます。+L オプションと +l オプションの相対的な順序は保存されます。検索順序の例は、-L の説明を参照してください。