Re: Linking to dynamic libraries compiled by old version g++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 7 Nov 2022 at 02:11, 孙世龙 via Gcc-help <gcc-help@xxxxxxxxxxx> wrote:
>
> There are dynamic libraries provided by others, which are out of my control.
>
> What I know is that most of the aforementioned libraries are compiled
> by g++4.9.4 & g++4.8.4 with C++11 support, and some libraries are
> compiled by g++11.1.0 with C++14 support.
>
> And I have to use newer g++ which supports C++17 to compile my
> project. I intend to use g++11.3.0 on Ubuntu20.4.
>
> Is there any potential problem I should be aware of when linking to
> dynamic libraries compiled by the said old version g++ ?

Yes, this is not supported.

C++11 support in GCC 4.8 and 4.9 was experimental and unstable, and is
not ABI compatible with C++11 code compiled by GCC 5 or later.

Specifically, there were changes to std::chrono::system_clock, and
std::error_category, and std::condition_variable. If those types are
used in the old dynamic libraries, particularly across the library API
boundary, then you are likely to run into problems. There are probably
other incompatibilities that I'm forgetting. I don't bother to
remember all the incompatibilities, because what you're trying to do
is not supported and so I don't spend any effort memorising all the
ways it can fail.




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux