程序是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是文件名的最后部分吗?这到底是什么意思?


当前回答

我得到了这个错误,我想这和你的原因一样

error while loading shared libraries: libnw.so: cannot open shared object 
file: No such file or directory

试试这个。修复文件权限:

sudo su
cd /opt/Popcorn (or wherever it is) 
chmod -R 555 * (755 if not ok) 
chown -R root:root *

其他回答

我有一个类似的错误,它没有修复给LD_LIBRARY_PATH ~/。bashrc。( 解决我的问题是通过添加.conf文件并加载它。 去终端,进入su。

gedit /etc/ld.so.conf.d/myapp.conf

在此文件中添加库路径并保存。(如:/usr/local/lib)。 需要执行以下命令激活path:

ldconfig

验证您的新库路径:

ldconfig -v | less

如果这显示了库文件,那么就可以开始了。

尝试安装lib32z1:

Sudo apt-get lib32z1

您的库是一个动态库。 您需要告诉操作系统在运行时可以在哪里定位它。

为了做到这一点, 我们需要做这些简单的步骤:

Find where the library is placed if you don't know it. sudo find / -name the_name_of_the_file.so Check for the existence of the dynamic library path environment variable(LD_LIBRARY_PATH) echo $LD_LIBRARY_PATH If there is nothing to be displayed, add a default path value (or not if you wish to) LD_LIBRARY_PATH=/usr/local/lib We add the desired path, export it and try the application. Note that the path should be the directory where the path.so.something is. So if path.so.something is in /my_library/path.so.something, it should be: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_library/ export LD_LIBRARY_PATH ./my_app

引用来源

想要添加的内容是,如果库位于非标准路径中,请在路径后面运行ldconfig。

例如,我必须跑:

sudo ldconfig /opt/intel/oneapi/mkl/2021.2.0/lib/intel64

在Intel MKL上编译R

我得到了这个错误,我想这和你的原因一样

加载共享库时出错:libnw。所以:不能打开共享 object文件:没有这样的文件或目录

试试这个。修复文件权限:

cd /opt/Popcorn (or wherever it is) 
chmod -R 555 * (755 if not ok)