Что такое принцип совместимости libstdc++?Linux

Ответить
Anonymous
 Что такое принцип совместимости libstdc++?

Сообщение Anonymous »

Мне сказали, что libstdc++.so часто поставляется вместе со встроенным приложением. Причина в https://gcc.gnu.org/onlinedocs/libstdc+ ... l_abi.html (мне сказали).
Я вывожу строки 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
Насколько я понимаю, это означает, что версия этой библиотеки — GLIBCXX_3.4.24/CXXABI_1.3.11. Но результат компиляции будет работать на машинах с libstdc++ со всеми меньшими GLIBCXX/CXXABI, перечисленными выше.
Однако изменение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»