我正在維護一個small application,它具有一些類似插件的功能,它通過運行時加載的動態模塊實現。從OS X上的dlopen()ed動態庫訪問主程序全局變量
具體而言,因爲它是一個Gtk +應用程序,所以我使用gmodule,但問題也適用於基於dlfcn.h/dlopen()的動態庫加載。
我的主程序有一個保存一些全局信息的單個全局結構體變量。我希望這些信息可用於動態加載插件中定義的函數。
在Linux上,我可以直接引用這個全局變量 - 這很好,我猜測gcc或鏈接器負責將全局變量從主程序導出到動態庫。
問題是,這不適用於Mac OS X.有沒有辦法在OS X上做到這一點?
如果沒有,是否有更多的「最佳實踐」的方式來暴露全球信息動態加載庫?
順便說一句,這裏有一些簡化問題的示例代碼:http://pastie.org/749794 – shevron 2009-12-19 18:00:05