在Ubuntu 18.04上编译Qt程序,该程序将在Ubuntu 14.04上运行



有趣的delema。

试图编译Qt程序,其中Qt是从18.04 64位的源代码构建的,并在14.04上运行它。有趣的部分是试图确定这次需要哪些库。C++ABI已经改变。

想看看最近有没有其他人这样做过?我必须带哪些图书馆?是的,我知道ldd和readelf,并花了几天时间在各种虚拟机中尝试这一点。问题是,一旦你开始使用C++(因为ABI再次发生了变化(,你的虚拟机就不会重新启动了。

请不要建议快速、扁平包装或其他新的"容器"解决方案。已经在snappy上浪费了3天以上。它是特定于体系结构的,当涉及到Qt时,它只支持在14.04上构建,至少是用于制作AppImage的deployqt工具。

这是几年前通过这个项目完成的。构建了一个debian,从12.04到15.04的每个版本都可以安装在64位和32位上,包括短寿命的.10和奇数年版本。

我试着用C++11标准编译QT,但它将不再用那个标准编译。

不兼容的ABI才是真正的杀手。

它是多个程序,因此使用LD_LIBRARY_PATH破解shell脚本将带来相当大的困难。

欣赏真知灼见。

谢谢。

请始终在您仍然希望应用程序运行的最旧发行版上开发应用程序。例如,如果您希望应用程序在当前仍受支持的所有Ubuntu版本上运行,请在Ubuntu 14.04上开发您的应用程序,并且不要安装任何比它附带的更新的编译器或库。

这就是"向后兼容性"的工作原理。

最新更新