Ich unterhalte eine small application, die einige Plugin-ähnliche Funktionalität hat, die durch Laufzeit-geladene dynamische Module implementiert wird.Zugriff auf Hauptprogramm globale Variablen von einer dlopen() ed dynamische Bibliothek in C unter OS X
Da es sich um eine Gtk + -App handelt, verwende ich gmodul, aber die Frage bezieht sich auch auf das dynamische Laden der dlfcn.h/dlopen() - Bibliothek.
Mein Hauptprogramm hat eine einzelne globale Strukturvariable, die einige globale Informationen enthält. Ich möchte, dass diese Information für Funktionen verfügbar ist, die in den dynamisch geladenen Plugins definiert sind.
Unter Linux konnte ich direkt auf diese globale Variable verweisen - das funktioniert gut, und ich denke, dass gcc oder der Linker kümmern sich um den Export der globalen Variablen aus dem Hauptprogramm in dynamische Bibliotheken.
Problem ist, dass dies unter Mac OS X nicht funktioniert. Gibt es eine Möglichkeit, dies unter OS X zu tun?
Wenn nicht, gibt es eine "Best Practice" Möglichkeit, globale Informationen dynamisch geladenen Bibliotheken zugänglich zu machen?
BTW hier ist ein Beispiel Code, der das Problem vereinfacht: http://pastie.org/749794 – shevron