Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无法加载现有库_Linux_Linker_Filesystems_Shared Libraries - Fatal编程技术网

Linux 无法加载现有库

Linux 无法加载现有库,linux,linker,filesystems,shared-libraries,Linux,Linker,Filesystems,Shared Libraries,我想解释一个复杂的问题,请耐心听我说 假设我有这些文件 /path/build/ /path/build/liba.so /path/build/liba.so.3 -> liba.so /path/build/libtest.so 我甚至设置了PATH=/PATH/build:…(其中…是我的正常$PATH) 在某个时刻,libtest.so将在运行时加载liba.so.3 但是,当运行(成功)加载libtest.so的代码时,liba.so.3似乎不存在,当我向ldd寻求帮助时,我得

我想解释一个复杂的问题,请耐心听我说

假设我有这些文件

/path/build/
/path/build/liba.so
/path/build/liba.so.3 -> liba.so
/path/build/libtest.so
我甚至设置了
PATH=/PATH/build:…
(其中
是我的正常
$PATH

在某个时刻,
libtest.so
将在运行时加载
liba.so.3

但是,当运行(成功)加载
libtest.so的代码时,
liba.so.3
似乎不存在,当我向
ldd
寻求帮助时,我得到以下信息:

$ ldd /path/build/libtest.so
linux-vdso.so.1 =>  (0x00007fff24fff000)
liba.so.3 => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8fea222000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8fe9f9e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8fe9d88000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8fe9b6a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8fe97c9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8fea767000)
(注意第二个输出行)


我怎么才能知道出了什么问题?库显然在那里,但加载程序声称它不在那里。

是在您的LD\u library\u路径上的/path/build吗?linux动态加载程序在这里查找linux上的库,默认位置是/path/build(在您的LD_LIBRARY_路径上)?linux动态加载程序在这里查找linux上的库,在默认位置之后。@keith请将该注释更改为答案,我将接受你的建议!哦,天哪,我要在角落里坐5分钟,让羞耻感涌上心头。。。