ソースからいくつかのライブラリをビルドしました。make install
の後のファイルは/usr/local/lib
にあります
たとえば、私の場合、このディレクトリにlibodb-2.2.so
というファイルがあります。
しかし、libodb
にリンクされている実行可能ファイルを起動すると、共有ライブラリの読み込み中にエラーが発生しました:libodb-2.2.so: cannont open shared object file: No such file or directory.
実行ファイルを正しくビルドしていないということですか?または、/usr/local/lib
フォルダーにもいくつかの興味深いライブラリがある可能性があることをシステムに示す必要がありますか?
私はUbuntu 12.04、Linuxカーネル3.2.0-38-genericを使用しています。
現在のセッションでは、次のことができます
エクスポートLD_LIBRARY_PATH =/lib:/ usr/lib:/ usr/local/lib
または、変更を永続的にするには、/usr/local/lib
〜/etc/ld.so.conf
(またはそれに含まれるもの)として、ルートとしてldconfig
を実行します。
それでも問題が解決しない場合は、ldd [executable name]
は、検索しようとしているライブラリと、見つからないライブラリを示します。
ライブラリのビルド後にldconfig
をすでに実行している場合は、読み続けてください。そうでない場合は、まず ldconfigから読み取る を使用します。
/usr/local/lib
がldconfigが使用するライブラリパスにない可能性があります。あなたはこれを行うことができます:
ldconfig /usr/local/lib
そして、それらはリンカのキャッシュに追加する必要がありますが、パスを適切に追加することをお勧めします。 /etc/ld.so.conf.d
ディレクトリ。その場合は、ファイル(「usr-local.conf」など)を追加して、1行追加します。
/usr/local/lib
次にldconfig
を実行します。 ld.so.conf.dディレクトリがない場合は、/etc/ld.so.conf
fileそして、その行をその最後に追加できます。