搜索的先后顺序是:

  1. 编译目标代码时指定的动态库搜索路径;
  2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
  3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
  4. 默认的动态库搜索路径/lib;
  5. 默认的动态库搜索路径/usr/lib。

将库文件放置在对应的路径中,运行时就可以搜索到了。

例1:通过gcc参数指定

-Wl,-rpath=${LD_PATH}#-Wl,-rpath=<动态库所在路径>

g++ ${RPATH} ./opencv_knn.cpp -o knn

例2:通过设置环境变量指定

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/mqtt/MQTT-c/lib

例3:通过配置文件

修改/etc/ld.so.conf文件。 其文件内容为:

[root@VM_24_16_centos etc]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf

所以,可以在文件夹/etc/ld.so.conf.d/中添加自己的文件,例如:创建文件gx.conf, 然后在文件中添加动态库路径,例如: /root/code/opencv/opencv-3.2.0/build/build/lib

注意:保存退出之后需要执行命令ldconfig刷新当前缓存。

内容来自知乎
https://zhuanlan.zhihu.com/p/654440835