Setcap 不允许 qt 程序加载库

Setcap 不允许 qt 程序加载库

为了加载库我正在做 export LD_LIBRARY_PATH=./SupportLibs:$LD_LIBRARY_PATH

当为 qt 应用程序设置任何功能能力时,库加载会失败,

sudo setcap =ep Application

如果我不设置功能,它可以正常工作

出现此错误:: 加载共享库时出错:libQt5multimediawidgets,无法打开共享对象文件:没有此文件或目录

编辑 1:在互联网上搜索一段时间后,我发现,出于安全原因,当设置应用程序的 setuid 或 setguid 位时,LD_LIBRARY_PATH 会被忽略。

赋予应用程序功能基本上是做类似的事情,这就是为什么应用程序找不到我的库的原因。参考

EDIT2:我通过创建一个包含我的库路径的文件并将其复制到/etc/ld.so.conf.d,然后在终端中运行ldconfig命令来解决了这个问题,但我的系统仍然无法顺利运行,之后它会挂起,我不知道在哪里搜索错误日志,是什么原因造成的。qt 很痛苦

答案1

似乎设置 Qt 应用程序的功能会导致加载共享库出现问题。请尝试在 LD_LIBRARY_PATH 环境变量中包含包含 Qt 共享库的目录以解决此问题。

相关内容