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