Sun Studio 12:C++ 用户指南

8.6 生成具有异常的共享库

切勿-Bsymbolic 与包含 C++ 代码的程序一起使用,应改用链接程序映射文件。如果使用 -Bsymbolic,不同模块中的引用会绑定到应是一个全局对象内容的不同副本。

异常机制依赖对地址的比较。如果您具有某项内容的两个副本,它们的地址就不等同且异常机制可能失败,这是由于异常机制依赖对假设为唯一地址内容的比较。

如果是使用 dlopen 打开共享库,必须使用 RTLD_GLOBAL ,异常才能生效。