ubuntu中设置动态链接库的路径有两种方式:
- 在
.bashrc
中添加export LD_LIBRARY_PATH=lib_path:$LD_LIBRARY_PATH
(其中lib_path
表示动态链接库路径),保存.bashrc
之后采用命令source .bashrc
激活; - 在
/etc/ld.so.conf.d
添加文件some_lib.conf
,并在其中写入lib_path
,(some_lib
可以用动态链接库库名表示,如opencv
可写成opencv.conf
),之后采用sudo ldconfig
激活。
这两种方式最后实现的效果是等价的,它们都可以用于解决文件或动态链接库找不到其依赖库的情况。
举个例子
我们想用源码编译opencv
,在我们安装好依赖库,并在make install
成功后,opencv
的相关动态链接库被安装至/usr/local/lib
中。这个时候,我们不仅想用opencv
的c/c++
接口,还想用它的python
接口。
网上常规的一种方法是将源码编译的opencv/build/lib/cv2.so
和opencv/modules/python/src2/cv.py
两个文件拷贝至python2.7/dist-packages
或python/site-packages
中
(二者的区别在于如果你的python
是源码编译的,则第三方库会被放在site-packages
中,如果你是采用sudo apt-get install python-dev
,第三方库会被放在dist-packages
中),
但是按照这种方法执行后,我发现自己的python2.7/dist-packages/cv2.so
如果采用ldd
查询依赖库的话,会出现
libopencv_core.so => not found
等相关opencv
库找不到的情况。
这时候,我们可以通过设置opencv
的动态链接库的方式来解决这个问题。但注意终端一定要重开一个,如果还是采用原始终端,终端可能未识别到更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。