Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Ubuntu18.04上编译Qt程序,该程序将在Ubuntu14.04上运行_C++_Qt_Ubuntu 14.04_Ubuntu 18.04 - Fatal编程技术网

C++ 在Ubuntu18.04上编译Qt程序,该程序将在Ubuntu14.04上运行

C++ 在Ubuntu18.04上编译Qt程序,该程序将在Ubuntu14.04上运行,c++,qt,ubuntu-14.04,ubuntu-18.04,C++,Qt,Ubuntu 14.04,Ubuntu 18.04,有趣的德莱玛 试图编译Qt程序,其中Qt是在18.04 64位上从源代码构建的,并在14.04上运行。有趣的部分是试图确定我这次需要哪些库。C++ ABI已经改变。 看看最近有没有其他人这样做?我必须带哪些图书馆?是的,我知道ldd和readelf,并在各种虚拟机上花了几天的时间来尝试。问题是一旦你开始把C++的东西(因为ABI又改变了),你就会到达一个点,你的VM就不会重启。 请不要建议snappy、flatpak或其他新的“容器”解决方案。已经在snappy上浪费了3天以上的时间。它是特定于

有趣的德莱玛

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

看看最近有没有其他人这样做?我必须带哪些图书馆?是的,我知道ldd和readelf,并在各种虚拟机上花了几天的时间来尝试。问题是一旦你开始把C++的东西(因为ABI又改变了),你就会到达一个点,你的VM就不会重启。 请不要建议snappy、flatpak或其他新的“容器”解决方案。已经在snappy上浪费了3天以上的时间。它是特定于体系结构的,仅在涉及Qt时支持在14.04上构建,至少用于制作AppImage的deployqt工具支持

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

我尝试用C++11标准编译QT,但是,它将不再使用该标准编译

不相容的ABI才是真正的杀手

它不止一个程序,因此使用LD_LIBRARY_PATH攻击shell脚本将带来相当大的困难

欣赏见解


谢谢。

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


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

您可以静态构建吗?这通常是制作向后兼容可执行文件的最佳解决方案。否。使用QWebEngine。由于插件等原因,静态不可能。那么,我想你要么在旧平台上构建所有东西,要么强制升级到新平台。虽然你所说的“向后兼容性”是正确的,自2015年以来,该系统每天多次构建和部署,构建时间为15.10,运行时间从12.04开始,几乎没有什么进展。