-Wl,-Bstatic
を使用してください、gcc
を静的にリンクしたいライブラリを教えてください。結局のところ、gcc
にライブラリとのリンクに関する他の情報(-Ldir
、-llibname
)を直接伝えています。ライブラリを静的にリンクさせるにはgccに直接連絡します
静的にリンクするライブラリをgccドライバに直接伝えることはできますか?
明確化:私は、特定のライブラリが静的バージョンでのみ存在する場合、それは-Wl,-Bstatic
せずにそれを使用するだろうことを知っているが、私は静的ライブラリを好むgcc
を意味します。私はまた、ライブラリファイルを直接指定することでそれがリンクされることを知っていますが、私は静的ライブラリと動的ライブラリを同じ意味で含むことを望んでいます。
gcc yourfiles /path/to/library/libLIBRARY.a
をしかし、これはgccのドライバーと話をされていませんが、-Wl,anything
のようなオプションとしてld
リンカーである:
Gnuだけが、lib接頭辞の狂気ではなく、これを最初にデフォルトにしたのであれば神です。ああ、私たちが救ったはずの時間と不満。 – Timmmm
Radek、この '-l:'オプションは文書化されていますか?どのバージョンのgccを使用する必要がありますか? – osgx
実際には、 'ld'リンカhttps://sourceware.org/binutils/docs/ld/Options.html" * '-l namespec'のオプションです。namespecが:filenameという形式の場合、ldはELF ..システムでは、ldはlibnamespecという名前のライブラリを探す前にlibnamespec.soという名前のライブラリをディレクトリから検索します。これはlibnamespec.aというファイルのライブラリパスを検索します。 a。この動作は、filenameには当てはまりません。filenameは常にfilename。* "というファイルを指定します。 binutils 2.18 - https://sourceware.org/binutils/docs-2.18/ld/Options.html – osgx