【发布时间】:2014-08-06 16:04:21
【问题描述】:
最近,我成功地将我的 Qt4 应用程序迁移到了 Qt5。事实上,应用程序使用来自 qt-opensource-linux-x64-5.3.1 发行版的预构建二进制 Qt5 库在开发机器上构建和运行。
因为我的应用需要符合 LGPL 2.1 许可,所以到 Qt5 的链接必须是动态的。 (所以我不能**不能**静态链接到 Qt!)
我的问题是部署此应用程序。我只是想不出一个包含所有可共享库的包,它可以在现有的 Linux 发行版上运行。
我可以容忍用户需要自己从 qt-opensource-linux-x64-5.3.1 二进制文件安装 Qt5 的要求。事实上,这将确保更严格地遵守 LGPL 2.1。所以,我可以假设兼容的 Qt5 库已安装并在主机上可用(虽然我不知道是否可以假设 Qt 安装的特定目录)
但是,我不清楚如何打包我的应用程序以在主机上运行。任何帮助将不胜感激!
【问题讨论】:
-
你不能只创建一个 .tar.gz 包含你的应用程序、Qt 库(动态链接到)、所有需要的 Qt 插件,并使用一个小脚本来设置
LD_LIBRARY_PATH哪个启动您的应用程序? (或使用ORIGIN。)这就是documentation 中描述的内容。 -
这正是我正在做的,除了我使用 Install Jammer 来打包二进制文件、库和 shell 脚本以启动应用程序。问题是它在 Ubuntu 12.04 上运行,但在其他 Linux 上存在分段错误,例如 Slackware :-(
-
这在Qt手册中都有解释:qt-project.org/doc/qt-5/linux-deployment.html
-
谢谢 MrEricSir。这是指向相同 Qt 文档的第二条评论,我已经找到并基于我的第一次部署尝试(针对 Ubuntu 12.04)。对于应用程序可执行文件和平台插件 libqxcb.so,我煞费苦心地复制了 ldd 指示的所有依赖项。这很乏味,显然不适用于其他 Linux。另一方面,Qt5 本身的二进制发行版可以正常工作,因为 QtCreator 可以正确启动。我的问题是如何在已经存在的 Qt5 安装上复制这个,也许是“搭载”。
-
我投票决定将此问题作为离题结束,因为它是关于许可或法律问题,而不是编程或软件开发。 See here 了解详情,help center 了解更多信息。