在Linux 中,动态库的搜索路径除了默认的搜索路径外(/lib和/usr/lib),可通过三种方法指定:
    方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径
   
    修改
    
     /etc/ld.so.conf
    
    文件。
    
    其文件内容为:
    
    [root@]# cat /etc/ld.so.conf
    
    include ld.so.conf.d/*.conf
    
    所以,可以在文件夹/etc/ld.so.conf.d/中添加自己的文件,例如:创建文件xw.conf,
    
    然后在文件中添加动态库路径,例如:
    
    /root/code/opencv/build/lib
    
    注意,保存退出之后需要执行命令
    
     ldconfig
    
    刷新当前缓存。
   
    方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径
   
    export LD_LIBRARY_PATH=/root/code/opencv/build/lib
    
    通过设置环境变量,只对当前shell有效,关闭shell或者退出当前用户则环境变量配置及无效了。
   
    方法三:在编译目标代码时指定该程序的动态库搜索路径
   
    通过gcc参数指定
    
    -Wl,-rpath=${LD_PATH}
    
    g++ ${RPATH} ./opencv-bak.cpp -o bak
   
    
    
     总结:
    
   
往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig
如果往上面两个目录以外加动态库时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig。
如果想在这两个目录以外放lib,但是又不想在/etc/ld.so.conf中加东西(或者是没有权限加东西)。用export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找library。这只是一种临时的解决方案,在没有权限或临时需要的时候使用。
    
     ldconfig做的这些东西都与运行程序时有关,跟编译时一点关系都没有。
    
   
总之,做了library的变动后,最好都ldconfig一下(更新动态缓存库)
    
     ldconfig -p
    
    命令可以查看每个动态库的路径