我在Debian 10 32位上做了一个基于Qt 5.12的桌面应用程序。因为Qt 5.12不能通过apt-get获得(我需要5.12中引入的2D图表特性),所以我从源代码编译了Qt。
该应用程序应该在另一台计算机上运行,也是Debian 10 32位。因此,我从开发机器上复制了所需的Qt依赖项。它运行良好。
由于硬件规格不同,这种方法可以吗?还是应该在每台计算机上编译Qt?
发布于 2020-07-01 06:35:45
Qt和其他共享库一样,不需要在每台计算机上编译。可以在一台机器上编译,然后部署到其他机器上;这就是Debian等发行版所做的事情。
然而,话虽如此,如果您要将应用程序部署到多台机器上,那么除了复制库之外,您还需要做更多的打包工作。通常用户将软件构建到一个操作系统包中(所以对于Debian来说是一个.deb文件),并以这种方式分发它。您还需要验证库是以通用方式构建的(例如,没有-march=native),否则您的程序将在与编译它的机器具有不同硬件的系统上崩溃或表现不佳。
除非你绝对需要Qt 5.12并且离不开这个新版本中的功能,否则你可能会发现使用Debian 10中的Qt 5.11包已经大大简化了你的生活。你通常会发现你的用户也会喜欢不用安装一个完全不同版本的Qt,你也会喜欢不用为一个你通常不会维护的库处理安全更新。如果您不打算主动监控Qt的安全更新并将其应用于您正在发布的版本,那么发布您自己的版本将对您的用户造成伤害,您应该转而依赖发行版版本。
https://stackoverflow.com/questions/62648607
复制相似问题