2009-07-07 20 views
3

静的ビルドに共有ライブラリが必要なのはなぜですか?静的ビルドで共有ライブラリが必要なのはなぜですか?

しょっちゅう私は(現時点ではそれがOpenSSHの-5.2p1で起こっている)...私のリンカからこれらの警告を取得し

警告は次のようになります:静的にリンクされたアプリケーションで 『機能』を使用して 」実行時にglibcのバージョンからの共有ライブラリが必要です... "

私はグーグルで、私は唯一の理由ではなく、修正を参照してください。

おかげで、 Chenz

答えて

3

は、それはそれ自体が共有ライブラリを必要としない、それはちょうどあなたがglibcのに静的にリンクしている場合、いくつかの物事が正しく動作しない可能性があることを警告します。

これらのいくつかはnsswitchです。 /etc/nsswitch.conf。ユーザー/グループ/ホスト名などを検索するさまざまな方法を、プラグインを使用して設定および変更できます。 sambaには、Windowsドメイン/ Active Directoryに透過的に構成されたユーザーを管理するためのモジュールが付属しています。

静的にglibcにリンクすると、gethostbyname、getpwuidなどの関数は単にデフォルトの方法を使用するだけで、アプリケーションは/etc/nsswitch.confのカスタマイズを尊重しません。

同じようになります。あなたのアプリケーションがglibcなどにフックするために何らかの理由でdlopen()自身を使用するかもしれない他のライブラリ。

Statically linking considered harmful

を参照してください。
関連する問題