链接库文件查找顺序

    1. 编译时指定的库文件目录(由gcc -L参数指定)
    2. 环境变量LIBRARY_PATH指定的目录
    3. 系统默认目录:/lib; /usr/lib; /usr/local/lib

    一般用户安装的库会安装在/usr/local/lib,系统自带的库位于/lib; /usr/lib,用户自己编译的库可能就要使用-L参数指定了。

    动态库查找顺序(运行时加载)
    编译时指定的动态库搜索路径(通过gcc 的参数”-Wl,-rpath,”指定。当指定多个动态库搜索路径时,路径之间用冒号:分隔)
    环境变量LD_LIBRARY_PATH指定的动态库搜索路径(路径之间用冒号:分隔)
    配置文件/etc/ld.so.conf中指定的动态库搜索路径
    默认的动态库搜索路径/lib:/usr/lib

    特别注意,库文件的查找默认是不查找当前目录的,也就是说,即使使用的库位于同一个目录内,也需要指定才能指定。

    添加路径到库文件默认搜索路径

    1. 写入到CMakeLists或者Makefile中
    2. 添加环境变量
      #动态链接库搜索路径:
      export LD_LIBRARY_PATH=XXX:库文件 - 图1LIBRARY_PATH