Наше приложение C ++, работающее в Linux и скомпилированное с помощью gcc, загружает динамические библиотеки как «плагины».Код хорошо проработан и отлично работает с gcc 5.3.1.Однако в gcc 7.3.0 загрузка библиотеки не выполняется во время выполнения.Мы получаем ошибки «символ не найден», например:
Failed to load <snip>/solibs/_gnuRelease/libLink.so
dlerror = <snip>: undefined symbol: _ZN24ChannelSelection7INVALIDE ( ChannelSelection::INVALID )
Failed to load <snip>/solibs/_gnuRelease/libBitTrue.so
dlerror = <snip>: undefined symbol: _ZTIN8StarLibs7LinkSim8StarFPGAE ( typeinfo for StarLibs::LinkSim::StarFPGA )
(имя символа с разделенными знаками находится в скобках).
Что-нибудь изменилось в gcc 7.3.0, что может вызвать это?