【发布时间】:2013-07-12 13:38:55
【问题描述】:
我正在开发一个大型 C++ 应用程序,它使用动态库通过插件接口在运行时加载功能。
偶尔会发生跨库加载的重复符号(本地类、函数等忘记包装在匿名命名空间中,与非本地命名空间级别符号的其他不幸冲突等),这会导致 SEGV 或其他更危险的运行时未定义行为。
谁能推荐一个工具/技巧来捕捉这些重复的符号?我想检查 150-200 个 dll 的固定列表。
【问题讨论】:
-
你真的无能为力。如果它是一个公共接口,那么任何人都可以随时添加一个破坏你的功能。在这种规模下使用 dll 的插件接口对我来说听起来很可怕,但这只是意见。
-
正如我所说,我只关心我知道的特定固定 dll 列表中的冲突(分发的一部分)。我不在乎谁在外部做什么。
-
另外,除了 dll,您还希望拥有什么?
-
除了 DLL 之外,我会考虑使用进程间协议(即通过网络或共享内存进行通信)方法或脚本。但是,这取决于您在做什么。
标签: c++ dll shared-libraries