摘自 ld manual page
The linker uses the following search paths to locate required shared libraries:
1. Any directories specified by -rpath-link options.
2. Any directories specified by -rpath options. The difference between -rpath and -rpath-link is that directories
specified by -rpath options are included in the executable and used at runtime, whereas the -rpath-link option is
only effective at link time. Searching -rpath in this way is only supported by native linkers and cross linkers
which have been configured with the --with-sysroot option.
3. On an ELF system, if the -rpath and "rpath-link" options were not used, search the contents of the environment
variable "LD_RUN_PATH". It is for the native linker only.
4. On SunOS, if the -rpath option was not used, search any directories specified using -L options.
5. For a native linker, the contents of the environment variable "LD_LIBRARY_PATH".
6. For a native ELF linker, the directories in "DT_RUNPATH" or "DT_RPATH" of a shared library are searched for
shared libraries needed by it. The "DT_RPATH" entries are ignored if "DT_RUNPATH" entries exist.
7. The default directories, normally /lib and /usr/lib.
8. For a native linker on an ELF system, if the file /etc/ld.so.conf exists, the list of directories found in that
file.
If the required shared library is not found, the linker will issue a warning and continue with the link.