可加载的macOS捆绑包符号与动态库中的符号冲突

问题描述

我们正在为Adobe Illustrator开发一个插件(可加载捆绑包),该插件广泛使用Bo​​ost。该插件被编译为MODULE CMake库。即add_library(ourplugin MODULE ...)

此库将静态链接到Boost。

主机应用程序(Adobe Illustrator)也使用Boost,尽管版本不同,并且应用程序捆绑包中包含Boost作为框架。

调用包中的函数时,它会调用一些Boost序列化编译函数。事实证明,动态链接器使用应用程序随附框架中的Boost函数,而不是插件二进制文件本身中存在的版本,从而导致兼容性错误

我们可以使用nm -gU --demangle ourplugin来确认该符号确实存在于我们的捆绑包中

当从捆绑包本身中请求动态链接器时,是否有一种方法指示动态链接器始终偏爱捆绑包中定义的符号?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)