如何解决可加载的macOS捆绑包符号与动态库中的符号冲突
我们正在为Adobe Illustrator开发一个插件(可加载捆绑包),该插件广泛使用Boost。该插件被编译为MODULE
CMake库。即add_library(ourplugin MODULE ...)
此库将静态链接到Boost。
主机应用程序(Adobe Illustrator)也使用Boost,尽管版本不同,并且应用程序捆绑包中包含Boost作为框架。
当调用包中的函数时,它会调用一些Boost序列化编译函数。事实证明,动态链接器使用应用程序随附框架中的Boost函数,而不是插件二进制文件本身中存在的版本,从而导致兼容性错误。
我们可以使用nm -gU --demangle ourplugin
来确认该符号确实存在于我们的捆绑包中
当从捆绑包本身中请求动态链接器时,是否有一种方法指示动态链接器始终偏爱捆绑包中定义的符号?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。