У меня есть класс 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*)
приведите код ссылки правильно.
Задача ещё не решена.