Я наткнулся эта статья о динамическом связывании в C ++.
Мы можем создать фабрику C ++, которая бы возвращала объект интересующего нас класса.
Кроме того, мы должны создать статический объект в области видимости файла для фабрики, чтобы он мог быть найден с помощью dlsym()
, (В статье предполагается, что статические объекты не искажены по имени.)
Почему статические объекты не искажены по имени?
Имя искажение изобретено, чтобы помочь в разрешении перегруженных имен функций. Вы можете определить несколько функций с одним и тем же именем, различающихся только количеством и типами их параметров. Перенос имени позволяет компоновщику разрешить такие функции в правильном месте в коде.
В отличие от имен функций, имена статических объектов в глобальном пространстве имен не могут быть перегружены, поэтому их искажение не требуется. Имена объектов, которые находятся вне глобального пространства имен, на самом деле искажены.
Других решений пока нет …