C++ 在Ubuntu18.04上编译Qt程序,该程序将在Ubuntu14.04上运行
有趣的德莱玛 试图编译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脚本将带来相当大的困难 欣赏见解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天以上的时间。它是特定于
谢谢。请始终在您仍希望应用程序运行的最旧发行版上开发应用程序。例如,如果您希望您的应用程序在所有当前仍受支持的Ubuntu版本上运行,那么请在Ubuntu 14.04上开发您的应用程序,并且不要安装任何新的编译器或库
这就是“向后兼容性”的工作原理。您可以静态构建吗?这通常是制作向后兼容可执行文件的最佳解决方案。否。使用QWebEngine。由于插件等原因,静态不可能。那么,我想你要么在旧平台上构建所有东西,要么强制升级到新平台。虽然你所说的“向后兼容性”是正确的,自2015年以来,该系统每天多次构建和部署,构建时间为15.10,运行时间从12.04开始,几乎没有什么进展。