Решение проблемы компоновщика с явным созданием экземпляра объектаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Решение проблемы компоновщика с явным созданием экземпляра объекта

Сообщение Anonymous »

У меня довольно сложный проект на базе C++14 cmake, подготовить минимальный полный проверяемый пример не так-то просто. Используя boost 1.73, я обнаружил проблему с связыванием на этапе выполнения в Ubuntu 22.04/23.04. В частности, ldd возвращает что-то вроде этого:

Код: Выделить всё

libboost_regex.so.1.73.0 => not found
Другие библиотеки Boost (например, потоки, файловая система) расположены успешно. Я обнаружил, что могу решить проблему, явно добавив глобальный объект из библиотеки регулярных выражений, например:

Код: Выделить всё

boost::basic_regex fix_linker_issue("");
В то же время объект, созданный по умолчанию, не помогает:

Код: Выделить всё

boost::basic_regex doesnt_help;
Может кто-нибудь объяснить мне, почему это исправление работает?
В более современной версии Boost 1.84 такой проблемы нет, скорее всего, потому что библиотека регулярных выражений стала заголовком -только.

Подробнее здесь: https://stackoverflow.com/questions/790 ... tantiation
Ответить

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

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

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

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

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