DLL: использование символов, которые находятся в коде загружаемой программы
От: cheqa  
Дата: 21.03.13 06:54
Оценка:
Здравствуйте.

Возникла такая вот задача (точнее, незадача).

Есть программа, состоящая из статически слинкованных (в разном порядке, в зависимости от настроек) статических же библиотек-компонент и функции main.
Программа должна уметь подгружать DLL на лету ну и так далее.
Прелесть в том, что ДЛЛи должны использовать код, который лежит в программе, состоящей из статически слинкованных компонент (предвосхищая вопрос — да, действительно лежит, я проверял).
Я ожидал, что оно заработает из коробки — но по факту получилось не так:

"Cannot load library /path/to/plugin/libplugin.so: (...plugin.so: undefined symbol: _ZN5app4namespace10AppClass12staticFunctionElPKcS3_S3_)"

т.е. при включении в ДЛЛ кода, который вызывает функции, которые физически должны распологаться в программе, загружающей ДЛЛ — появляется такое вот сообщение при загрузке.

Немного технических деталей:


Собственно, вопрос такой: как заставить всё это работать, крайне желательно — по описанной выше схеме?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.