【发布时间】:2020-10-20 05:38:24
【问题描述】:
我在 Debian 10 32 位上制作了一个基于 Qt 5.12 的桌面应用程序。因为 Qt 5.12 不能通过 apt-get 获得(我需要 5.12 引入的 2D 图表功能),所以我从源代码编译了 Qt。
该应用程序应该在另一台计算机上运行,同样是 Debian 10 32 位。所以我从开发机器上复制了所需的 Qt 依赖项。它工作正常。
这种方法可以吗?还是应该在每台计算机上编译 Qt,因为硬件规格不一样?
【问题讨论】:
-
一旦您想将软件部署给最终用户等,这将不起作用。通常会为 Windows/macOS 提供自包含的安装程序/.dmgs,并为各种发行版提供特定于发行版的软件包(参见例如 OpenSUSE 构建服务),或者使用自包含的包(参见 appimage.org)。
-
我将 Qt 依赖项复制到另一台计算机,应用程序似乎在那里运行良好。什么不应该工作?是否必须在每台机器上编译 Qt?我会相信这一点,尽管到目前为止我还没有论据来证明这一点。
-
一个可能的问题是与其他库不兼容,例如 libstdc++ 和 libc。创建分发包时,通常会使用分发提供的 Qt。我猜 AppImage 在这里引起的头痛最少。但这始终取决于您要分发给谁的软件类型。它是开源软件还是专有软件?您实际需要支持多少个目标平台?你控制目标计算机吗?等