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?