以opencv为例进行说明,当opencv在编译安装时,没有将其安装路径选用默认的“/usl/local”而是放在其他路径下,例如“/home/wyj/[install]”时,需要进行动态链接共享库路径配置
linux的默认的共享库的搜索路径是:/lib和 /usr/lib,这两个文件夹,不包含子路径;
如果共享库不在这两个路径中的话,不能自动链接,
即使codeblock等编译器中将链接器的选项中添加两 动态链接共享库的路径,该工程也不能够找到其所在的路径。
解决的办法有几种:
1、编译程序使用静态链接,加上完整路径,不建议了;
2、修改LD_LIBRARY_PATH环境变量(临时有效,且有时候没有效果);
3、将.so文件复制到可以搜索的路径中,这个办法有点傻;(复制到系统的默认搜索路径,即/lib和 /usr/lib中)
4、添加搜索路径,使用ldconfig命令,建议如此;[选用此法]
如何添加搜索路径:
- cd至搜索路径文件目录,如下命令:
cd /etc/ld.so.conf.d/
- 创建自己的第三方库的搜索路径设置文件,如opencv.conf
sudo gedit opencv.conf
在该文件中写入第三方库所在的路径,例如“/home/wyj/[install]/lib”,保存关闭。
- 执行如下命令,使得设置生效:
sudo ldconfig
参考:https://blog.csdn.net/sloanqin/article/details/51506277