我一直在尝试用 C++ 开发一个可以在应用程序中运行时加载的动态库。我终于让它工作了,但它有点难看。我有一个函数,它将指向 C++ 类的指针作为参数,如下所示:
bool registerGrindPlugin( Grind::PluginManager* mgr );
但当然它被导出为:
_Z19registerGrindPluginPN5Grind13PluginManagerE
我尝试了一个带有简单函数的 .c 文件,它导出为“registerGrindPlugin”,但当然我不能以这种方式将 C++ 类作为参数传递。
Soo ...我的问题是,有没有办法解开或别名导出的符号,这样我就不必在我的 dlsym 调用中使用像 Z19registerGrindPluginPN5Grind13PluginManagerE 这样的怪物?
我确实看到了一些关于 -alias_list 作为链接器选项的信息,但我还没有完全弄清楚如何在 XCode 中使用它。如果这是解决方案,有人可以提供有关如何使用它的更多详细信息吗?