リンカーに特定のライブラリの静的バージョンを強制的に使用させたい場合は:filename
、リンカーに「ベース」ライブラリ名を指定して最初に見つかったものを使用させる代わりに、 を使用して特定のライブラリを強制することができます。
g++ main.cpp -o a.out -l:./libtest.a
http://sourceware.org/binutils/docs-2.23.1/ld/Options.htmlから:
-l namespec
--library=namespec
で指定されたアーカイブまたはオブジェクト ファイルnamespec
を、リンクするファイルのリストに追加します。このオプションは何度でも使用できます。namespec
が の形式の場合
:filename
、ld はライブラリ パスで というファイルfilename
を検索します。それ以外の場合は、ライブラリ パスで というファイルを検索しますlibnamespec.a
。
共有ライブラリをサポートするシステムでは、ld は .xml 以外のファイルも検索する場合がありますlibnamespec.a
。具体的には、ELF および SunOS システムでは、 ld は、 という名前のライブラリを検索する
libnamespec.so
前に、 という名前のライブラリのディレクトリを検索しlibnamespec.a
ます。(慣例により、拡張子 .so は共有ライブラリを示します。)この動作は:filename
、常に というファイルを指定するには適用されないことに注意してくださいfilename
。