共享对象(so)文件搜索路径

共享对象(so)文件搜索路径

加载共享对象文件时搜索路径的顺序是怎样的?

我正在尝试运行一个可执行文件,它会尝试加载共享对象文件。共享对象文件可以在 找到/usr/lib/x86_64-linux-gnu/

我有两个用户,我们称他们为user1user2user1可以运行可执行文件,但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)

相关内容