dynamic_cast с динамически загруженным классом вызывает неопределенную ссылку

У меня есть класс C ++, определение которого будет загружаться во время выполнения через dlopen, Я не могу заставить это связать все же. Я получаю сообщения о том, что существует «неопределенная ссылка на typeinfo».

Соответствующая часть кода выглядит следующим образом:

class Interface { ... };
class Impl : public Interface { ... };

Interface *Create() { ... }

// Load shared object around here

Impl *impl = dynamic_cast<Impl*>(Create()); // Undefined reference to typeinfo

Я пытался добавить -rdynamic к моей команде компоновщика, но это, похоже, ничего не меняет. Что я могу с этим поделать?

Поскольку я видел много вопросов об одном и том же сообщении об ошибке, вызванном неопределенными виртуальными функциями, я должен упомянуть, что уверен, что это не моя проблема.

Также я должен добавить, что я уверен, что это связано с dynamic_cast, потому что если я заменю dynamic_cast на обычный (Impl*) приведите код ссылки правильно.

4

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector