链接库文件查找顺序
- 编译时指定的库文件目录(由
gcc -L
参数指定) - 环境变量
LIBRARY_PATH
指定的目录 - 系统默认目录:
/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
特别注意,库文件的查找默认是不查找当前目录的,也就是说,即使使用的库位于同一个目录内,也需要指定才能指定。
添加路径到库文件默认搜索路径
- 写入到CMakeLists或者Makefile中
- 添加环境变量
#动态链接库搜索路径:
export LD_LIBRARY_PATH=XXX:LIBRARY_PATH