Я вывожу строки grep для библиотеки gcc 7.3:
Код: Выделить всё
libstdc++.so.6.0.24 | grep CXX
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
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
Однако изменение ABI GCC 5.1 произошло для GCC 5.1.0 : GLIBCXX_3.4.21, CXXABI_1.3.9 (https://gcc.gnu.org/onlinedocs/libstdc+ ... l/abi.html). Поэтому я ожидал, что приведенный выше список совместимости не будет содержать версий ниже GLIBCXX_3.4.21, CXXABI_1.3.9. А ведь содержит.
- Что не так с моим пониманием списка совместимости?
- Тем более, почему нужно ли разработчикам использовать libstdc++.so вместе со своим приложением, если список совместимости такой длинный? Может быть, есть другая причина?
- Чем отличаются символы GLIBCXX и CXXABI? Не могу найти информацию.
- GLIBCXX и CXXABI относятся к ABI, API или к тому и другому?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -principle
Мобильная версия