Доступ к глобальным переменным основной программы из динамической библиотеки dlopen () ed в C на OS X
Я поддерживаюнебольшое приложение у этого есть некоторая подобная плагину функциональность, которая реализована через динамические модули, загруженные во время выполнения.
В частности, поскольку это приложение Gtk +, я использую gmodule, но вопрос также относится и к загрузке динамической библиотеки на основе dlfcn.h / dlopen ().
Моя основная программа имеет одну глобальную переменную структуры, содержащую некоторую глобальную информацию. Я хочу, чтобы эта информация была доступна для функций, определенных в динамически загружаемых плагинах.
В Linux я мог бы просто ссылаться на эту глобальную переменную напрямую - это хорошо работает, и я предполагаю, что gcc или компоновщик позаботятся об экспорте глобальных переменных из основной программы в динамические библиотеки.
Проблема в том, что это не работает в Mac OS X. Есть ли способ сделать это в OS X?
Если нет, то существует ли более эффективный способ предоставления глобальной информации динамически загружаемым библиотекам?