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

前端之家收集整理的这篇文章主要介绍了关于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的动态链接库的方式来解决这个问题。但注意终端一定要重开一个,如果还是采用原始终端,终端可能未识别到更改。

猜你在找的Ubuntu相关文章