程序是Xenomai测试套件的一部分,从Linux PC交叉编译到Linux+Xenomai ARM工具链。

# echo $LD_LIBRARY_PATH                                                                                                                                          
/lib                                                                                                                                                             
# ls /lib                                                                                                                                                        
ld-2.3.3.so         libdl-2.3.3.so      libpthread-0.10.so                                                                                                       
ld-linux.so.2       libdl.so.2          libpthread.so.0                                                                                                          
libc-2.3.3.so       libgcc_s.so         libpthread_rt.so                                                                                                         
libc.so.6           libgcc_s.so.1       libstdc++.so.6                                                                                                           
libcrypt-2.3.3.so   libm-2.3.3.so       libstdc++.so.6.0.9                                                                                                       
libcrypt.so.1       libm.so.6                                                                                                                                    
# ./clocktest                                                                                                                                                    
./clocktest: error while loading shared libraries: libpthread_rt.so.1: cannot open shared object file: No such file or directory                                 

.1是文件名的最后部分吗?这到底是什么意思?


当前回答

在这里可以找到一个类似的问题。 我尝试过上面提到的解决方案,它确实有效。

前面几个问题的答案可能有用。但下面是一个简单的方法来解决它。 它通过重新安装libwbclient包来工作 在fedora:

dnf reinstall libwbclient

其他回答

我使用Ubuntu 18.04

安装相应的-dev包对我来说很有效,

sudo apt install libgconf2-dev

在安装上面的包之前,我得到了以下错误:

turtl: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory

linux.org参考页面解释了机制,但没有解释背后的动机:-(

为此,请参阅Sun Linker和图书馆指南

此外,请注意,“外部版本控制”在Linux上基本上已经过时了,因为符号版本控制(GNU扩展)允许您在单个库中呈现同一个函数的多个不兼容版本。这个扩展允许glibc拥有相同的外部版本:libc.so。过去10年有6个。

另一种可能的解决方案取决于您的情况。

如果你知道libpthread_rt.so。1与libpthread_rt相同。然后你可以创建一个符号链接:

ln -s /lib/libpthread_rt.so /lib/libpthread_rt.so.1

然后ls -l /lib现在应该显示符号链接及其指向的内容。

在这里可以找到一个类似的问题。 我尝试过上面提到的解决方案,它确实有效。

前面几个问题的答案可能有用。但下面是一个简单的方法来解决它。 它通过重新安装libwbclient包来工作 在fedora:

dnf reinstall libwbclient

尝试在~/中添加LD_LIBRARY_PATH,它指示搜索路径。bashrc文件(

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path_to_your_library

它的工作原理!