ライブラリが標準パスにない場合は、ライブラリをパスに追加するか、非標準パスを LD_LIBRARY_PATH に追加する必要があります
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<Your_non-Standard_path>
上記のいずれかを行ったら、以下のコマンドを実行してダイナミック リンカー ランタイム バインディングを更新する必要があります:
sudo ldconfig
更新:
上記の export
を記述することで、変更を永続的にすることができます を起動ファイルの 1 つに入力します (例:~/.bashrc) または 基礎となるライブラリが他のライブラリと競合していない場合は、標準ライブラリ パスの 1 つに配置します (例:/lib、/usr/lib)
LD_LIBRARY_PATH
短いテストに適していますが、変数が 1 つしかないためです 、カスタム ライブラリを使用するアプリケーションが複数ある場合に使用するのは面倒です。
Debian/Ubuntu の通常の方法は、ローダーの構成に追加することです。たとえば、
/etc/ld.so.conf.d
ローダーが検索するディレクトリを含みます。たとえば、
/usr/local/libcsfml
さらに読む:
- ldconfig - 動的リンカーのランタイム バインディングを構成する
- ld.so, ld-linux.so* - 動的リンカー/ローダー
- LD_LIBRARY_PATH が良くない理由
これは、問題のバイナリがあなたによってコンパイルされたかのようです。
そのため、一部のライブラリが見つからないという問題はあなたの責任です。
これらのライブラリがあなたのシステムで利用できる場合、それらは非標準のディレクトリの場所にあるようです.
-R directory
を使用 リンカーに directory
を伝える最後のコンパイラ呼び出し ライブラリが配置されている場所。複数の -R directory
オプションが可能です。
gcc
を使用しているときは注意してください 、 -Wl,-R
を使用する必要がある場合があります -R
の代わりに .