error while loading shared libraries错误解决办法

来源:互联网 发布:java后端服务器运行 编辑:程序博客网 时间:2024/04/24 00:50

error while loading shared libraries 错误解决办法

在编译yaml-cpp后,并且使用ROS摄像驱动时,出现错误:error while loading shared libraries: libyaml-cpp.so.0.5: cannot open shared object file: No such file or directory。

搜索了网上的一些文章,发现:安装完成后,经常会遇到以下问题error while loading shared libraries,就是编译器没有找到相应的lib库文件。

出现这类错误表示,系统不知道xxx.so放在哪个目录下,一般而言,有很多的so会存放在/usr/local/lib这个目录底下,去这个目录底下找,果然发现自己所需要的.so文件。

库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般  系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到 库的搜索路径之中。

设置库文件的搜索路径有下列两种方式,可任选其一使用:

1)修改配置文件ld.so.conf

将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择。具体做法如下:

打开ld.so.conf文件在里面添加:/usr/local/lib

或者使用另一种做法:在/etc/ld.so.conf.d中创建usr-libs.conf,创建方法为使用vi usr-libs.conf(然后按键盘上字母i表示进入插入模式,添加/usr/local/lib后,按zz保存并退出)

接着再执行 ldconfig。ps:有的文章是再运行:/sbin/ldconfig –v。具体哪一个没尝试,我使用的是下面这一种方法。

注意需要使用root权限,直接sudo su就可以了,返回普通用户时:su 用户名

2)修改环境变量LD_LIBRARY_PATH

具体步骤如下:

在终端中输入:vi ~/.bashrc

使用E(即编辑模式查看),按字母i进入插入模式,添加:

export LD_LIBRARY_PATH=/usr/local/lib:

按Esc退出插入模式,再按zz保存并退出。


参考网站:http://blog.csdn.net/wallwind/article/details/7580659

参考网站:http://blog.csdn.net/david_xtd/article/details/7625626/

参考网站:http://blog.csdn.net/dumeifang/article/details/2963223

参考网站:http://blog.sina.com.cn/s/blog_54f82cc201011ve4.html


Linux下库的设置:ld.so.conf 文件与PKG_CONFIG_PATH变量

参考网站:http://www.linuxidc.com/Linux/2011-03/33432.htm





0 0
原创粉丝点击