LINUX.ORG.RU

не экспортируются символы


0

0

Дом который построил Джек, блин...

Екзешник слинкован с ДЛЛ1. ДЛЛ1 выставляет наружу класс Base1 (абстрактный).

Этот класс пронаследован и реализован в некоторой ДЛЛ2, которая грузится из ДЛЛ1 методом dlopen. До этого места все работает — ДЛЛ2 загружается и исполняется, свой Base1 находит без проблем.

Далее необходима аналогичная схема: в ДЛЛ2 присутствует класс Base2 (так же абстрактный). Класс динамически пытается грузить ДЛЛ3, в которой есть конкретная реализация Base2. И вот тут лажа: не может найти typeinfo for Base2.

Все библиотеки слинкованы с ключами -Wl,-export-dynamic -shared.

Пробовал dlopen с параметрами RTLD_LAZY и RTLD_GLOBAL — не помогает.... разве что слинковать ДЛЛ3 с ДЛЛ2.

Куда копать? В чем принципиальная разница при подгрузке ДЛЛ2 и ДЛЛ3?

> Пробовал dlopen с параметрами RTLD_LAZY и RTLD_GLOBAL

Ты пробовал RTLD_GLOBAL для загрузки DLL2?

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.