E
E
Evgeny Ivanovich2019-09-23 01:12:20
linux
Evgeny Ivanovich, 2019-09-23 01:12:20

Is there a compatibility table for compilers and library versions?

In general, the essence of the question is what versions and standards of C ++ are represented in one form or another by versions of the libstdc ++ libraries
. For example, there is an output

[[email protected] bin]# strings /lib/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.0
GLIBC_2.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.3.2
GLIBC_2.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

How do I know which compiler versions to use to achieve compatibility with the libstdc++ library? Is it possible to include libstdc++ statically in a library? (-static-libstdc++ doesn't work, checked)
It would not be bad to collect all the information together, let's say, in a table, and navigate by it. I compile my library with g++ 8 version, which requires GLIBCXX_3.4.20 and GLIBCXX_3.4.21, plus some other CXXABI_1.3.9 (?). How and with what should I compile my library in order to minimize the change in the library code itself and be compatible with the above libstdc ++

Answer the question

In order to leave comments, you need to log in

[[+comments_count]] answer(s)
J
jcmvbkbc, 2019-09-23
@Pauk_Code

For gcc and its libstdc++ there is a table of correspondence between the compiler version and the symbol version from its library, as well as a description of the rules by which versions are changed and in general the whole idea of ​​ABI versioning: https://gcc.gnu.org/onlinedocs/libstdc++/manual/ ab...

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question