我有一個基於Cocoa的通用動態庫,還包括更多的靜態庫,我想從中導出功能。看來我不能在沒有使用導出符號文件的情況下執行最新操作,這對我來說很好......不知何故。我不使用任何設置「默認情況下隱藏的符號」(GCC_SYMBOLS_PRIVATE_EXTERN,-fvisibility = hidden)。 當我試圖從動態庫中導出基類時,更具體地說,當試圖使用庫中未包含的派生類中的成員,甚至更具體地說是64位版本時,出現此問題: 「 未定義的符號: 「_OBJC_IVAR _ $ _ PluginBase.fConn」 「 我知道64位的變化:http://developer.apple.com/library/mac/#releasenotes/Cocoa/RN-ObjectiveC/_index.html,部分‘64位類和實例變量的訪問控制’導出符號文件:Objective C派生類成員,64位
,當然,一切正常,如果我添加_OBJC_IVAR _ $ _ PluginBase.fConn到導出文件...但只適用於64位版本,32位版本不知道這樣的事情: 「 未定義的符號: 「_OBJC_IVAR _ $ _ PluginBase.fConn」,從引用: -exported_symbol [s_list]命令行選項 「
唯一的解決辦法似乎是另一個解決方法:有兩個導出文件。但是...我無法使用EXPORTED_SYMBOLS_FILE設置中的「添加生成設置條件」:-S。
任何想法(除了使用公共存取方法)?