Zugriff auf globale Variablen des Hauptprogramms aus einer dynamischen Bibliothek mit dlopen () in C unter OS X

Ich halte einkleine Anwendung Das hat einige Plug-in-ähnliche Funktionen, die durch runtime-geladene dynamische Module implementiert werden.

Insbesondere, da es sich um eine Gtk + -App handelt, verwende ich gmodule, aber die Frage gilt auch für das Laden von dynamischen Bibliotheken auf der Basis von dlfcn.h / dlopen ().

Mein Hauptprogramm hat eine einzige globale Strukturvariable, die einige globale Informationen enthält. Ich möchte, dass diese Informationen für Funktionen verfügbar sind, die in den dynamisch geladenen Plugins definiert sind.

Unter Linux könnte ich einfach direkt auf diese globale Variable verweisen - das funktioniert gut, und ich vermute, dass gcc oder der Linker dafür sorgen, dass die globalen Variablen aus dem Hauptprogramm in dynamische Bibliotheken exportiert werden.

Das 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 bessere Methode, um globale Informationen dynamisch geladenen Bibliotheken zugänglich zu machen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage