Acessando variáveis ​​globais do programa principal a partir de uma biblioteca dinâmica dlopen () ed em C no OS X

Estou mantendo umpequena aplicação que tem alguma funcionalidade semelhante a plugin, que é implementada através de módulos dinâmicos carregados em tempo de execução.

Especificamente, como é um aplicativo Gtk +, estou usando o gmodule, mas a questão se aplica também ao carregamento dinâmico de bibliotecas baseado em dlfcn.h / dlopen ().

Meu programa principal possui uma única variável global struct contendo alguma informação global. Eu quero que esta informação esteja disponível para funções definidas nos plugins carregados dinamicamente.

No Linux, eu poderia me referir diretamente a essa variável global - isso funciona bem, e estou supondo que o gcc ou o linker cuida de exportar as variáveis ​​globais do programa principal para as bibliotecas dinâmicas.

O problema é que isso não funciona no Mac OS X. Existe uma maneira de fazer isso no OS X?

Caso contrário, existe uma maneira mais "prática recomendada" de expor informações globais a bibliotecas carregadas dinamicamente?

questionAnswers(2)

yourAnswerToTheQuestion