linux 中动态库的搜索路径

linux 中动态库的搜索路径

在 linux 中动态库的搜索路径一般有如下方法指定:

  • 在配置文件 /etc/ld.so.conf 中指定动态库搜索路径

    添加完一定要记得 ldconfig 刷新一下

  • 通过环境变量 LD_LIBRARY_PATH 指定动态库搜索路径

    export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/path/xxx"

  • 在编译目标代码时指定该程序的动态库搜索路径

    通过 gcc 的参数 “-Wl, -rpath” 指定

Linux 动态库的默认搜索路径是 /lib/usr/lib

如果采用带版本号的库,例如:libhello.so.2,则链接命令可使用:

1
2
g++ main.cpp libhello.so.2 -L./ -Wl,-rpath=./ -o main
g++ main.cpp -L./second/ -Wl,-rpath=./second/ -lsecond -L./hello/ -Wl,-rpath=./hello/ -lhello -o main