本页面 - http://labs.qt.nokia.com/2011/10/28/rpath-and-runpath/ - 说,大约为了在ld.so库搜索:使用RPATH而不是RUNPATH?
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,而不是运行路径或保证 LD_LIBRARY_PATH在它们运行之前被设置。
因此,使用RPATH
与RUNPATH
是不好的,因为RUNPATH
样-的取消预期RPATH
所以间接动态加载不起作用?但为什么然后RPATH
已弃用RUNPATH
?
有人可以解释一下情况吗?
问题是,建议使用RUNPATH而不使用RPATH,并且不推荐使用RPATH,但RUNPATH目前不受所有系统支持。所以我今天做了什么**来使申请工作?正如Qt文章所示,在使用插件时,使用RPATH比RUNPATH更有用。所以整个情况在这里非常混乱 – zaharpopov
@zaharpopov,我推荐并遵循自己的最佳方法是生成很好地集成在目标平台中的应用程序,其中包括*不分发竞争版本的平台共享库*。我认为这是问题的根源,并且在'DT_RPATH'和'DT_RPATH'之间进行了黑客攻击和破解,而朋友是一个试图侧重解决问题而不是解决问题的错误尝试。 – chill
这不简单。与Qt问题是该应用程序想要Qt库的更新版本比系统上存在。有些系统已经过时了Qt SO,那么你会怎么做?如果你需要一个特定的版本 – zaharpopov