为了加载库我正在做
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 共享库的目录以解决此问题。