Linux动态库
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名
- 使用
ldd nginx
查看nginx的动态库 - 把不需要的动态库加载进来会影响程序运行速度,可以使用
ldd -u nginx
查看nginx不需要的动态库,编译的时候使用-Wl,--as-needed
去掉无用动态库 - gcc 使用参数
-Wl,-rpath
指定动态库搜索路径 -L
指定相对路径
Linux动态库搜索路径
搜索路径按以下优先级排序
- 编译目标代码时指定的动态库搜索路径,编译时候使用gcc参数
-Wl,-rpath
指定,多个动态库搜索路径使用:
分割 - 环境变量
LD_LIBRARY_PATH
指定的动态库搜索路径 - 配置文件
/etc/ld.so.conf
中指定的动态库搜索路径 - 默认的动态库搜索路径
/lib
- 默认的动态库搜索路径
/usr/lib