Compile Qt program on Ubuntu 18.04 which will run on Ubuntu 14.04











up vote
-4
down vote

favorite












Interesting delema.



Trying to compile Qt program where Qt is build from source on 18.04 64-bit and run it on 14.04. The interesting part is trying to identify which libraries I need this time. The C++ ABI has changed.



Looking to see if anyone else has done this recently? Which libraries do I have to bring along? Yes, I know about ldd and readelf and have spent days trying this in various VMs. The problem is once you start bringing the C++ stuff over (because the ABI has changed yet again) you get to a point where your VM won't reboot.



Please don't suggest snappy, flatpak or one of those other new "container" solutions. Already wasted 3+ days on snappy. It's architecture specific and only supports building on 14.04 when it comes to Qt, at least the deployqt tool to make an AppImage does.



Did this years ago with this very program. Built a debian which would install on both 64-bit and 32-bit for every version from 12.04 to 15.04 including the short lived .10 and odd year versions.



I tried compiling QT with C++11 standard, but, it will no longer compile with that standard.



The incompatible ABI is the real killer.



It is more than one program so the hack of a shell script using LD_LIBRARY_PATH would bring considerable difficulty.



Appreciate insights.



Thank you.










share|improve this question


















  • 1




    Can you build statically? This is typically best solution to make backwards compatible executables.
    – mvp
    Nov 10 at 23:40










  • No. Uses QWebEngine. Static not possible due to plugins, et-al.
    – user3450148
    Nov 11 at 1:38






  • 1




    Well, I guess then you have to either build everything on old platform, or force upgrade to new one.
    – mvp
    Nov 11 at 2:41















up vote
-4
down vote

favorite












Interesting delema.



Trying to compile Qt program where Qt is build from source on 18.04 64-bit and run it on 14.04. The interesting part is trying to identify which libraries I need this time. The C++ ABI has changed.



Looking to see if anyone else has done this recently? Which libraries do I have to bring along? Yes, I know about ldd and readelf and have spent days trying this in various VMs. The problem is once you start bringing the C++ stuff over (because the ABI has changed yet again) you get to a point where your VM won't reboot.



Please don't suggest snappy, flatpak or one of those other new "container" solutions. Already wasted 3+ days on snappy. It's architecture specific and only supports building on 14.04 when it comes to Qt, at least the deployqt tool to make an AppImage does.



Did this years ago with this very program. Built a debian which would install on both 64-bit and 32-bit for every version from 12.04 to 15.04 including the short lived .10 and odd year versions.



I tried compiling QT with C++11 standard, but, it will no longer compile with that standard.



The incompatible ABI is the real killer.



It is more than one program so the hack of a shell script using LD_LIBRARY_PATH would bring considerable difficulty.



Appreciate insights.



Thank you.










share|improve this question


















  • 1




    Can you build statically? This is typically best solution to make backwards compatible executables.
    – mvp
    Nov 10 at 23:40










  • No. Uses QWebEngine. Static not possible due to plugins, et-al.
    – user3450148
    Nov 11 at 1:38






  • 1




    Well, I guess then you have to either build everything on old platform, or force upgrade to new one.
    – mvp
    Nov 11 at 2:41













up vote
-4
down vote

favorite









up vote
-4
down vote

favorite











Interesting delema.



Trying to compile Qt program where Qt is build from source on 18.04 64-bit and run it on 14.04. The interesting part is trying to identify which libraries I need this time. The C++ ABI has changed.



Looking to see if anyone else has done this recently? Which libraries do I have to bring along? Yes, I know about ldd and readelf and have spent days trying this in various VMs. The problem is once you start bringing the C++ stuff over (because the ABI has changed yet again) you get to a point where your VM won't reboot.



Please don't suggest snappy, flatpak or one of those other new "container" solutions. Already wasted 3+ days on snappy. It's architecture specific and only supports building on 14.04 when it comes to Qt, at least the deployqt tool to make an AppImage does.



Did this years ago with this very program. Built a debian which would install on both 64-bit and 32-bit for every version from 12.04 to 15.04 including the short lived .10 and odd year versions.



I tried compiling QT with C++11 standard, but, it will no longer compile with that standard.



The incompatible ABI is the real killer.



It is more than one program so the hack of a shell script using LD_LIBRARY_PATH would bring considerable difficulty.



Appreciate insights.



Thank you.










share|improve this question













Interesting delema.



Trying to compile Qt program where Qt is build from source on 18.04 64-bit and run it on 14.04. The interesting part is trying to identify which libraries I need this time. The C++ ABI has changed.



Looking to see if anyone else has done this recently? Which libraries do I have to bring along? Yes, I know about ldd and readelf and have spent days trying this in various VMs. The problem is once you start bringing the C++ stuff over (because the ABI has changed yet again) you get to a point where your VM won't reboot.



Please don't suggest snappy, flatpak or one of those other new "container" solutions. Already wasted 3+ days on snappy. It's architecture specific and only supports building on 14.04 when it comes to Qt, at least the deployqt tool to make an AppImage does.



Did this years ago with this very program. Built a debian which would install on both 64-bit and 32-bit for every version from 12.04 to 15.04 including the short lived .10 and odd year versions.



I tried compiling QT with C++11 standard, but, it will no longer compile with that standard.



The incompatible ABI is the real killer.



It is more than one program so the hack of a shell script using LD_LIBRARY_PATH would bring considerable difficulty.



Appreciate insights.



Thank you.







c++ qt ubuntu-14.04 ubuntu-18.04






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 10 at 23:29









user3450148

134




134








  • 1




    Can you build statically? This is typically best solution to make backwards compatible executables.
    – mvp
    Nov 10 at 23:40










  • No. Uses QWebEngine. Static not possible due to plugins, et-al.
    – user3450148
    Nov 11 at 1:38






  • 1




    Well, I guess then you have to either build everything on old platform, or force upgrade to new one.
    – mvp
    Nov 11 at 2:41














  • 1




    Can you build statically? This is typically best solution to make backwards compatible executables.
    – mvp
    Nov 10 at 23:40










  • No. Uses QWebEngine. Static not possible due to plugins, et-al.
    – user3450148
    Nov 11 at 1:38






  • 1




    Well, I guess then you have to either build everything on old platform, or force upgrade to new one.
    – mvp
    Nov 11 at 2:41








1




1




Can you build statically? This is typically best solution to make backwards compatible executables.
– mvp
Nov 10 at 23:40




Can you build statically? This is typically best solution to make backwards compatible executables.
– mvp
Nov 10 at 23:40












No. Uses QWebEngine. Static not possible due to plugins, et-al.
– user3450148
Nov 11 at 1:38




No. Uses QWebEngine. Static not possible due to plugins, et-al.
– user3450148
Nov 11 at 1:38




1




1




Well, I guess then you have to either build everything on old platform, or force upgrade to new one.
– mvp
Nov 11 at 2:41




Well, I guess then you have to either build everything on old platform, or force upgrade to new one.
– mvp
Nov 11 at 2:41












1 Answer
1






active

oldest

votes

















up vote
0
down vote













Please always develop applications on the oldest distribution you still want your application to run on. For example, if you want your application to run on all currently still-supported versions of Ubuntu, then develop your application on Ubuntu 14.04 and do not install any newer compilers or libraries than what it comes with.



This is how "backward compatibility" works.






share|improve this answer





















  • While what you say about "backward compatibility" is true, since 2015 this has been building and deploying multiple times per day building on 15.10 and running on everything from 12.04 forward bringing very little along.
    – user3450148
    Nov 12 at 15:08











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244436%2fcompile-qt-program-on-ubuntu-18-04-which-will-run-on-ubuntu-14-04%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













Please always develop applications on the oldest distribution you still want your application to run on. For example, if you want your application to run on all currently still-supported versions of Ubuntu, then develop your application on Ubuntu 14.04 and do not install any newer compilers or libraries than what it comes with.



This is how "backward compatibility" works.






share|improve this answer





















  • While what you say about "backward compatibility" is true, since 2015 this has been building and deploying multiple times per day building on 15.10 and running on everything from 12.04 forward bringing very little along.
    – user3450148
    Nov 12 at 15:08















up vote
0
down vote













Please always develop applications on the oldest distribution you still want your application to run on. For example, if you want your application to run on all currently still-supported versions of Ubuntu, then develop your application on Ubuntu 14.04 and do not install any newer compilers or libraries than what it comes with.



This is how "backward compatibility" works.






share|improve this answer





















  • While what you say about "backward compatibility" is true, since 2015 this has been building and deploying multiple times per day building on 15.10 and running on everything from 12.04 forward bringing very little along.
    – user3450148
    Nov 12 at 15:08













up vote
0
down vote










up vote
0
down vote









Please always develop applications on the oldest distribution you still want your application to run on. For example, if you want your application to run on all currently still-supported versions of Ubuntu, then develop your application on Ubuntu 14.04 and do not install any newer compilers or libraries than what it comes with.



This is how "backward compatibility" works.






share|improve this answer












Please always develop applications on the oldest distribution you still want your application to run on. For example, if you want your application to run on all currently still-supported versions of Ubuntu, then develop your application on Ubuntu 14.04 and do not install any newer compilers or libraries than what it comes with.



This is how "backward compatibility" works.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 11 at 12:38









probono

47734




47734












  • While what you say about "backward compatibility" is true, since 2015 this has been building and deploying multiple times per day building on 15.10 and running on everything from 12.04 forward bringing very little along.
    – user3450148
    Nov 12 at 15:08


















  • While what you say about "backward compatibility" is true, since 2015 this has been building and deploying multiple times per day building on 15.10 and running on everything from 12.04 forward bringing very little along.
    – user3450148
    Nov 12 at 15:08
















While what you say about "backward compatibility" is true, since 2015 this has been building and deploying multiple times per day building on 15.10 and running on everything from 12.04 forward bringing very little along.
– user3450148
Nov 12 at 15:08




While what you say about "backward compatibility" is true, since 2015 this has been building and deploying multiple times per day building on 15.10 and running on everything from 12.04 forward bringing very little along.
– user3450148
Nov 12 at 15:08


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53244436%2fcompile-qt-program-on-ubuntu-18-04-which-will-run-on-ubuntu-14-04%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Full-time equivalent

Bicuculline

さくらももこ