LINUX.ORG.RU

libstdc++.so.6: version `GLIBCXX_3.4.20' not found

 ,


0

1

Собираем код под убунтой 16.04, добавилась зависимость от плюсом.

Пытаются запустить под Centos 7, там не находятся нужные символы.

Вопрос: а если при компиляции/линковке вообще убрать зависимости от версии GLIBC, т.е. пусть будь что будет и при старте свяжется с той версией функции, которая есть в библиотеке, то что может плохого произойти?

Понятно, что наверное авторы библиотеки не просто так выпустили новую версию реализации функции, но уж что есть, то есть.

пусть будь что будет и при старте свяжется с той версией функции, которая есть в библиотеке, то что может плохого произойти?

Реальное содержимое class _whatever из реализации libstdc++ будет отличаться от того, что было написано в заголовочных файлах на момент сборки. Дальше будет UB. На деле это будет выражаться в выделении неправильного количества памяти под объекты на стеке, разыменовании данных как указателей и прочем непотребстве, которое в лучшем случае заканчивается падением программы.

anonymous ()
Ответ на: комментарий от anonymous

угу, я примерно к этому же пришел.

Пошел по кривой дорожке patchelf, хотел убрать зависимость от древней libc, которая в centos7, но решил всё таки сделать проще и попросту оставить centos7 без поддержки новых фич и кода.

max_lapshin ★★★ ()