我正在维护一个小应用程序,它具有类似插件的功能,通过运行时加载的动态模块来实现。
具体而言,由于它是一个Gtk+应用程序,我正在使用gmodule,但问题同样适用于基于dlfcn.h / dlopen()的动态库加载。
我的主程序有一个单一的全局结构变量,保存一些全局信息。我希望这些信息能够在动态加载的插件中定义的函数中使用。
在Linux上,我可以直接引用这个全局变量 - 这很有效,我猜想gcc或链接器会负责将全局变量从主程序导出到动态库。
问题是,在Mac OS X上这种方法不起作用。是否有办法在OS X上实现这个目标?
如果没有,是否有更好的方式将全局信息公开给动态加载的库?
具体而言,由于它是一个Gtk+应用程序,我正在使用gmodule,但问题同样适用于基于dlfcn.h / dlopen()的动态库加载。
我的主程序有一个单一的全局结构变量,保存一些全局信息。我希望这些信息能够在动态加载的插件中定义的函数中使用。
在Linux上,我可以直接引用这个全局变量 - 这很有效,我猜想gcc或链接器会负责将全局变量从主程序导出到动态库。
问题是,在Mac OS X上这种方法不起作用。是否有办法在OS X上实现这个目标?
如果没有,是否有更好的方式将全局信息公开给动态加载的库?