Cocoa ベースのユニバーサル ダイナミック ライブラリがあり、そこから機能をエクスポートしたいと考えています。エクスポート シンボル ファイルを使用しないと最新のものを実行できないようですが、これで問題ありません。「デフォルトでシンボルを非表示」(GCC_SYMBOLS_PRIVATE_EXTERN、-fvisibility=hidden) の設定はどこでも使用しません。この問題は、動的ライブラリから基本クラスをエクスポートしようとしたときに発生しました。具体的には、ライブラリに含まれていない派生クラスでそのメンバーを使用しようとしたときに、さらに具体的には 64 ビット ビルドで発生しました。 $_PluginBase.fConn" " 64 ビットの変更を認識しています: http://developer.apple.com/library/mac/#releasenotes/Cocoa/RN-ObjectiveC/_index.html、セクション「64 ビット クラスおよびインスタンス変数のアクセス制御」
そしてもちろん、_OBJC_IVAR_$_PluginBase.fConn をエクスポート ファイルに追加すれば、すべてが機能します...ただし、64 ビット ビルドの場合のみ、32 ビット ビルドはそのようなことを認識しません: "未定義シンボル: "_OBJC_IVAR_ $_PluginBase.fConn"、次から参照: -exported_symbol[s_list] コマンド ライン オプション"
唯一の解決策は別の回避策のようです: 2 つのエクスポート ファイルを用意することです。しかし・・・EXPORTED_SYMBOLS_FILEの設定:-Sに「ビルド設定条件追加」が使えません。
アイデアはありますか(パブリックアクセサーメソッドを使用する以外に)?