[Interest] Is _GLIBCXX_USE_CXX11_ABI=0 defined in pre-build versions of Qt?

Oleksiy Balabay oleksiy.balabay at gmail.com
Thu Jun 22 13:58:10 CEST 2017


Sergio,

You answered my question - the same Qt build may be used with different 
versions of gcc because (as you say) "since Qt doesn't use std:: in it's 
ABI."

Thanks,

Alex

22.06.2017 14:36, Sérgio Martins пишет:
> On Thu, Jun 22, 2017 at 11:58 AM, Oleksiy Balabay
> <oleksiy.balabay at gmail.com> wrote:
>
>> Gcc ABI was significantly changed between 4.x and 5.x. If you try to link
>> application with third-party library that was compiled with an older version
>> of GCC then you get linker errors about undefined references to symbols that
>> involve types in the std::__cxx11 namespace. The problem is related to
>> https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
>>
>> But the same Qt pre-build binary distribution from the official site for
>> Linux links correctly with gcc 5.x and gcc 4.x.
>>
>> How to get the same result with other 3rd-party libraries? How the problem
>> of different gcc ABI is resolved? Is _GLIBCXX_USE_CXX11_ABI=0 defined for Qt
>> pre-build version that is available to download?
> I don't think Qt uses _GLIBCXX_USE_CXX11_ABI=0. It shouldn't even
> care, since Qt doesn't use std:: in it's ABI.
>
> Can you show us the linker errors that are related to Qt ?
>
>
> Regards,
> Sergio Martins





More information about the Interest mailing list