Dostęp do zmiennych globalnych programu głównego z biblioteki dynamicznej dlopen () ed w C na OS X

Utrzymujęmała aplikacja który ma funkcjonalność podobną do wtyczki, która jest implementowana przez dynamiczne moduły ładowane w czasie wykonywania.

W szczególności, ponieważ jest to aplikacja Gtk +, używam gmodule, ale pytanie dotyczy również ładowania dynamicznej biblioteki opartej na dlfcn.h / dlopen ().

Mój główny program ma pojedynczą globalną zmienną strukturalną zawierającą informacje globalne. Chcę, aby ta informacja była dostępna dla funkcji zdefiniowanych w dynamicznie ładowanych wtyczkach.

W Linuksie mogę po prostu odwołać się bezpośrednio do tej zmiennej globalnej - to działa dobrze i domyślam się, że gcc lub linker zajmują się eksportowaniem zmiennych globalnych z programu głównego do bibliotek dynamicznych.

Problem polega na tym, że nie działa to w systemie Mac OS X. Czy można to zrobić w systemie OS X?

Jeśli nie, czy istnieje bardziej „najlepszy sposób” na ujawnienie informacji globalnych bibliotekom ładowanym dynamicznie?

questionAnswers(2)

yourAnswerToTheQuestion