运送二进制文件时,最好为用户提供使二进制文件适应其自身系统细节的方法,其中包括调整库搜索路径。
用户通常可以调整
LD_LIBRARY_PATH和
/etc/ld.so.conf,两者的优先级均低于
DT_RPATH,即您不能覆盖二进制文件中的硬编码内容,而如果使用
DT_RUNPATH,则用户可以使用进行覆盖
LD_LIBRARY_PATH。
(FWIW,我认为
ld.so.conf也应该优先于
DT_RUNPATH,但无论如何,至少我们有
LD_LIBRARY_PATH)。
另外,我强烈不同意以上使用的建议
DT_RPATH。IMO,最好
DT_RPATH不要
DT_RUNPATH在出厂的二进制文件中使用。
除非
您附带了所有依赖库和可执行文件,并希望确保在安装后使用JustWork(tm),在这种情况下请使用
DT_RPATH。



