微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于ubuntu中动态链接库路径的设置以及源码编译python可用的opencv

ubuntu中设置动态链接库的路径有两种方式:

  1. .bashrc添加export LD_LIBRARY_PATH=lib_path:$LD_LIBRARY_PATH(其中lib_path表示动态链接库路径),保存.bashrc之后采用命令source .bashrc激活;
  2. /etc/ld.so.conf.d添加文件some_lib.conf,并在其中写入lib_path,(some_lib可以用动态链接库库名表示,如opencv可写成opencv.conf),之后采用sudo ldconfig激活。
    这两种方式最后实现的效果是等价的,它们都可以用于解决文件或动态链接库找不到其依赖库的情况。

举个例子

我们想用源码编译opencv,在我们安装好依赖库,并在make install成功后,opencv的相关动态链接库被安装至/usr/local/lib中。这个时候,我们不仅想用opencvc/c++接口,还想用它的python接口。
网上常规的一种方法是将源码编译的opencv/build/lib/cv2.soopencv/modules/python/src2/cv.py两个文件拷贝python2.7/dist-packagespython/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 举报,一经查实,本站将立刻删除。

相关推荐