Динамическая загрузка и разделение символов
Я пытаюсь загрузить библиотеку модулей через dl
таким образом, что модуль может получить доступ к глобальным переменным из основного приложения. Как это возможно сделать?
Я получаю сообщение об ошибке от dlopen, говорящее library/name.so: undefined symbol: ...
, Единственный используемый флаг: RTLD_NOW
,
Сам модуль собран с помощью libtool -module -avoid-version
,
1 ответ
Решение
Ответ: использовать -Wl,--export-dynamic
при связывании основного двоичного файла, поэтому все символы автоматически экспортируются в загруженные библиотеки.
Тот же вопрос, только что заданный по-другому: при загрузке библиотеки с помощью dlopen появляется ошибка "неопределенный символ"