Ubuntu Linuxライブラリパスを確認するにはどうすればよいですか?つまり、リンカは、プログラムをリンクするときにオブジェクトファイルを取得する場所をどのようにして知るのでしょうか。
/etc/ld.so.conf
と/etc/ld.so.conf.d/
ディレクトリ内のファイルを見てください。ここに設定されています。
ファイルパスは、-L
パラメーター、および環境変数LD_LIBRARY_PATH
を使用してリンクするときに、明示的に設定できます。
-L
パラメータを使用して、リンカにハードコードされたパスもいくつかあります。これらは次のコマンドで確認できます。
gcc -Xlinker -v
リンクするときは、ライブラリの場所を示す-Lフラグを指定する必要があります。実行時に、ダイナミックリンカは「/etc/ld.so.conf」、「/etc/ld.so.conf.d/*」で指定されたパスとLD_LIBRARY_PATHの値を使用します。
標準パス(/lib
、/usr/lib
)でない場合は、コンパイラフラグを使用して場所を指定できます。 g++
の場合、それは-L/some/path/lib
です。 autotoolsを使用する場合、特定のパスが必要な場合はLDFLAGS=-L/some/path/lib
で設定できます。 configureがプロジェクト用に適切に設計されている場合は、--with-some-library=PATH
オプションが必要です。このオプションでは、そのライブラリのパスのみを指定することもできます。
「Sudoldconfig」は、何か新しいものをインストールしたばかりの場合、システムのキャッシュを更新します。