ソースからいくつかのライブラリを作成し、それ以降のファイルは次の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を使用しています。
答え1
現在のセッションでは、次のことができます。
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib エクスポート
または、変更を永続的に適用するには/usr/local/lib
(/etc/ld.so.conf
または含まれている内容)を追加してldconfig
rootとして実行できます。
それでも問題がある場合は、実行すると、検索しようとしているldd [executable name]
ライブラリと見つからないライブラリが表示されます。
答え2
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 ディレクトリがない場合は、1 つある必要があります。/etc/ld.so.conf
文書この行を最後に追加できます。