您的位置:首页 > 编程语言 > C语言/C++

error while loading shared libraries解决办法

2016-08-17 18:37 429 查看
error while loading shared libraries: librdkafka++.so.1: cannot open shared object file: No such file or directory 解决办法

1,cd /etc/ 

2,sudo ldconfig

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*********************** over****************************/

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

出错如下:

主要错误:error while loading shared libraries: libboost_regex.so.1.51.0: cannot open shared object file: No such file or directory

错误过程如下:

[cpp] view
plain copy

[root@node07 C++]# ll  

总用量 960  

-rw-r--r--. 1 root root  90915  9月 15 20:47 1.html  

-rw-r--r--. 1 root root  86714  9月 15 20:48 2.html  

-rw-r--r--. 1 root root  89032  9月 15 20:49 3.html  

-rw-r--r--. 1 root root    239  9月 16 10:40 main.cpp  

-rw-r--r--. 1 root root   5684  9月 16 10:48 main.o  

-rw-r--r--. 1 root root    320  9月 16 10:28 Makefile  

-rwxr-xr-x. 1 root root 256884  9月 16 10:48 target  

-rw-r--r--. 1 root root      0  9月 15 20:49 test.txt  

-rw-r--r--. 1 root root   4365  9月 15 20:35 TextExtractor.cpp  

-rw-r--r--. 1 root root   1710  9月 15 20:58 TextExtractor.h  

-rw-r--r--. 1 root root 421412  9月 16 10:48 TextExtractor.o  

[root@node07 C++]# ./target  

./target: error while loading shared libraries: libboost_regex.so.1.51.0: cannot open shared object  

file: No such file or directory  

那就表示系统不知道xxx.so放在哪个目录下,这个时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。首先查找存在的目录,结果为/usr/local/boost_1_51_0/~/boost_install/lib/,具体操作如下:

[cpp] view
plain copy

[root@node07 C++]# find / -name libboost_regex.*  

/usr/local/boost_1_51_0/bin.v2/libs/regex/build/gcc-4.4.5/release/threading-multi/libboost_regex.so.1.51.0  

/usr/local/boost_1_51_0/bin.v2/libs/regex/build/gcc-4.4.5/release/link-static/threading-multi/libboost_regex.a  

/usr/local/boost_1_51_0/~/boost_install/lib/libboost_regex.so.1.51.0  

/usr/local/boost_1_51_0/~/boost_install/lib/libboost_regex.so  

/usr/local/boost_1_51_0/~/boost_install/lib/libboost_regex.a  

一般而言,有很多so档会在/usr/local/lib这个目录下,所以在/etc/ld.so.conf中加入/usr/local/lib这一行,可以解决此问题。

将/etc/ld.so.conf存档后,还要执行/etc/ldconfig 来更新一下才会生效。

[cpp] view
plain copy

[root@node07 C++]# cd /etc/  

[root@node07 etc]# ldconfig  

再次运行target 无错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ c++11 gcc gdb