私は、アプリケーションに実行時にロードできるC++のダイナミックライブラリを開発しようとしています。ようやく動作しましたが、少し醜いです。C++クラスへのポインタを引数として取る関数があります。これは次のようになります。
bool registerGrindPlugin( Grind::PluginManager* mgr );
しかしもちろん、それは次のようにエクスポートされています:
_Z19registerGrindPluginPN5Grind13PluginManagerE
単純な関数で.cファイルを試したところ、「registerGrindPlugin」として正常にエクスポートされましたが、もちろん、引数としてC++クラスを渡すことはできません。
Soo ...私の質問は、エクスポートされたシンボルのマングルを解除またはエイリアス化して、dlsym呼び出しでZ19registerGrindPluginPN5Grind13PluginManagerEのような怪物を使用する必要がないようにする方法はありますか?
リンカオプションとして-alias_listについて何かを見ましたが、XCodeでそれを使用する方法を完全には理解していません。それが解決策である場合、誰かがこれを使用する方法についてもう少し詳細を提供できますか?