Qt项目发布Ubuntu-加载共享库时出错:libQt5Widgets.so.5

14
我想将使用Qt编写的项目发布给Ubuntu / Linux用户。 如果他们尝试执行构建版本,他们会收到此错误消息,因为他们没有安装Qt:
``` error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory ```
是否有一种方法可以将所有库(如`libQt5Widgets.so.5`)添加到可执行文件所在的文件夹中,就像在Windows下使用`qt.conf`一样,您可以指定`Plugins`文件夹?

不清楚您所说的“将库添加到库所在文件夹”的意思。您是指应用程序所在的位置吗?然后您提到“就像在Windows下使用qt.conf一样”。我想您是想将Qt库复制到一个文件夹中,然后告诉应用程序库的位置在哪里? - Kurt Pattyn
@KurtPattyn “我猜你想把Qt库复制到一个文件夹中,然后告诉应用程序库的位置?” 这正是我想要的。 - Niklas
你是怎么解决这个问题的伙计? - Michael
4个回答

14

试试这个

sudo apt-get安装libqt5widgets5


3
一个解决方案可能是:
export LD_LIBRARY_PATH=/path/to/dir/with/libs:$LD_LIBRARY_PATH

但是一个合适的解决方案是在系统中安装QT库,或为Ubuntu打包您的应用程序(在您的情况下)。


那不能自动完成,对吧?因为它取决于用户放置程序的位置。 - Niklas
当然可以,只需提供一个脚本来启动您的应用程序,其中库路径是当前目录。 - kikeenrique

1

当我看到这个错误时,我最近通过SDK管理器更新了Android工具。

重新安装SDK工具以进行修复。这是适用于我的计算机的方法。


0

使用Ubuntu的软件包管理系统打包项目可能是最简单的方法。当您的项目被安装时,软件包管理器将自动安装Qt依赖项。只要在Ubuntu的软件包存储库中有Qt 5的版本可用,这就是最好的方法。这将为您节省大量麻烦。


那你的意思是只需要执行 sudo apt-get install libqt5 命令吗? - Niklas
是的,你应该将自己的项目制作成一个 apt 包,并依赖于 libqt5。这样当你的包被安装时,libqt5 应该会自动被拉取。 - Kuba hasn't forgotten Monica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接