该应用程序是一个Firefox插件(从$ HOME / .mozilla / plugins加载),因此设置LD_LIBRARY_PATH的包装脚本不是一个简单的选项。
据我所知,RPATH无法引用$ HOME,只能是绝对的路径。
Firefox试图从〜/ .mozilla / plugins中删除它的插件但是失败了(因为它依赖于安装在用户主目录中某处的共享库)。
修改Firefox菜单项以在Firefox周围提供包装器(带有LD_LIBRARY_PATH)实在太糟糕了。
安装程序脚本应该做什么(没有root访问权限)来制作依赖于共享库的标准firefox加载插件?
答案 0 :(得分:4)
将RPATH设置为$ORIGIN/lib
,以便加载程序查找相对于我的文件的库。
脚本只需将插件解压缩到$HOME/.mozilla/plugins/myplugin.so
,将库解压缩到$HOME/.mozilla/plugins/lib/
rpath可以通过gcc添加Wl,-rpath,'$ORIGIN/lib'
($
应该在Makefile中加倍)指定给链接器,也可以在patchelf
编译后更改。