Эта страница - http://labs.qt.nokia.com/2011/10/28/rpath-and-runpath/ - говорит о порядке поиска библиотеки в ld.so:
Unless loading object has RUNPATH:
RPATH of the loading object,
then the RPATH of its loader (unless it has a RUNPATH), ...,
until the end of the chain, which is either the executable
or an object loaded by dlopen
Unless executable has RUNPATH:
RPATH of the executable
LD_LIBRARY_PATH
RUNPATH of the loading object
ld.so.cache
default dirs
И затем предложите:
Когда вы отправляете двоичные файлы, используйте RPATH, а не RUNPATH, или убедитесь, что LD_LIBRARY_PATH устанавливается до их запуска.
Итак, использование RPATH
с RUNPATH
плохо, потому что RUNPATH
отменяет отмену RPATH
, так что непрямая динамическая загрузка не работает должным образом? Но почему тогда RPATH
устарел в пользу RUNPATH
?
Может кто-нибудь объяснить ситуацию?