1

ダイナミックライブラリを使用するプログラムをコンパイルしたい場合、このライブラリをインストール(つまり、特定の場所、たとえば/ usr / share / libにコピー)する必要がありますか?または、このライブラリをどこかに配置し、後でリンク中にリンカーをそのライブラリにポイントした場合、たとえば「-L./thelibfolder」で問題ありませんか?

4

1 に答える 1

0

このライブラリをインストール(つまり、特定の場所、たとえば/ usr / share / libにコピー)する必要がありますか?

いいえ。

UNIX共有ライブラリの場合、次の2つのことを手配する必要があります。

  • メインの実行可能ファイルをリンクするときに、ライブラリを静的リンカーに認識させる必要があります。通常、これは-L/path/to/directory -lfooリンクラインにリンクフラグを追加することで実現されます。
  • ランタイムローダー検索/path/to/directoryも行う必要があります。これはシステム固有です。多くのシステムでは、LD_LIBRARY_PATH環境変数を設定することで目的の結果が得られますが、これは通常、推奨される方法ではありません。もう1つの方法は、このパスをアプリケーション自体にエンコードすることです。たとえば、Linuxでは-Wl,-rpath=/path/to/directory、アプリケーションのリンク行に追加します。
于 2013-02-23T04:12:25.287 に答える