2016-01-26 100 views
0

我正在编写一个使用Qt5.3的C++应用程序。它使用5.3中的WebSocket支持,所以我不能使用早期版本构建它。此外,它使用QT的WebKit支持,所以我不能静态构建它。如何捆绑Linux应用程序?

此应用程序必须支持旧版发行版,例如存储库中没有Qt5.3的Ubuntu 14.04 LTS。

如何让我的应用程序支持分布没有Qt5.3?

+0

为您最喜欢的发行版制作一些'.deb'(也许是'.rpm')软件包;也许还要将Qt5.3编译成一些包 –

+0

我为Ubuntu 15.10+编译,因为他们的库中有Qt5.4。 Qt是一个依赖项。但是,较旧的发行版在存储库中没有合适的Qt。问题是:如何支持Ubuntu,Debian,什么......的旧版本? –

+0

我建议编译一个最新的Qt5,用于支持它们的所有发行版,然后打包Qt5 –

回答

1

关于如何在此构建Linux部署软件包有一个很好的讨论:http://doc.qt.io/qt-5/linux-deployment.html

我会亲自发送我需要的共享库,并将它们安装在系统/usr/lib以外的空间,并使用LD_LIBRARY_PATH指向它们。这样你就知道你正在使用Qt的当前版本运行它,并且你已经对它进行了测试。缺点是取决于链接的库的数量,最终可能会有相当大的部署包。

+0

好吧,我已将一个包含Qt库的应用程序放入'/ opt'中。传统的Ubuntu发行版存在一个问题:应用程序没有使用系统KDE风格。它刚刚默认它的Fusion。有什么办法可以让它使用系统风格? –

+0

这可能是值得打开另一个问题,以获得更多的知名度。 –

相关问题