arで圧縮されたスタティック ライブラリ(つまり libSOMTEHING.a) の関数を使用する方法をいくつか示します。
ld -Lpath/to/library -lname myapp.o -o 結果
ld path/to/library/libname.a myapp.o -o 結果
違いは何ですか?たとえば、ライブラリ全体が実行可能ファイルにリンクされていますか、それとも必要な関数だけですか? 2 番目の例では、lib とオブジェクト ファイルの場所を切り替えることは重要ですか?
最初の行では、動的ライブラリ (libname.so) の検索が、ディレクトリ内の静的ライブラリ (libname.a) の前に発生します。また、/path/to/library だけでなく、標準の lib パスも libname.* で検索されます。
「マンド」より
共有ライブラリをサポートするシステムでは、ld は libnamespec.a 以外のファイルも検索する場合があります。具体的には、ELF および SunOS システムでは、ld は、libnamespec.a という名前のライブラリを検索する前に、libnamespec.so という名前のライブラリのディレクトリを検索します。(慣例により、「.so」拡張子は共有ライブラリを示します。)
2 行目は、リンカが path/to/lib にあるスタティック ライブラリを使用するように強制します。
ビルドされた動的ライブラリ (libname.so) がなく、利用可能な唯一のライブラリが path/to/library/libname.a である場合、2 つの行は同じ「結果」バイナリを生成します。