%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E6%A4%9C%E7%B4%A2%E3%83%91%E3%82%B9.png)
共有オブジェクト ファイルをロードするために検索されるパスのシーケンスは何ですか?
共有オブジェクト ファイルをロードする実行可能ファイルを実行しようとしています。共有オブジェクト ファイルは にあります/usr/lib/x86_64-linux-gnu/
。
私には 2 人のユーザーがいます。彼らを とuser1
と呼びますuser2
。user1
実行ファイルは実行できますが、user2
次のエラーが発生します: 共有オブジェクト ファイル libicuuc.so を開けません
両方のユーザーに同じものがありますLD_LIBRARY_PATH
。何が欠けているのでしょうか?
答え1
マニュアルldconfigあなたを助けるかもしれない
/etc/ld.so.cache File containing an ordered list of libraries found
in the directories specified in /etc/ld.so.conf, as
well as those found in /lib and /usr/lib.
ただし、あなたのディストリビューションには私のものとは異なる情報が含まれている可能性があるので、自分のディストリビューションを読んでください。
実行ファイルにどのライブラリをバインドするかを決定する別の方法は、lddプログラムの例:
ldd /bin/echo
linux-vdso.so.1 => (0x00007ffc2277a000)
libc.so.6 => /lib64/libc.so.6 (0x0000003edc200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003edbe00000)