gcc-fvisibility问题

gcc-fvisibility问题,gcc,shared-libraries,exception,Gcc,Shared Libraries,Exception,我在这里描述了问题: 在库外部使用时,无法捕获从共享库导出的异常类,程序将终止。我在类声明中添加了\uuuuuuuuuuuuu属性(可见性(“默认”)): class __attribute__((visibility("default"))) MyException { ... }; 但这没用。客户端可执行文件未捕获此异常。 gcc版本是4.4.1,用于Linux操作系统。供将来参考:这不是可见性问题。我在这里得到了一个答案: 如果多个链接对象都有一个MyException,那么

我在这里描述了问题:

在库外部使用时,无法捕获从共享库导出的异常类,程序将终止。我在类声明中添加了
\uuuuuuuuuuuuu属性(可见性(“默认”))

class  __attribute__((visibility("default"))) MyException
{
    ...
};
但这没用。客户端可执行文件未捕获此异常。
gcc版本是4.4.1,用于Linux操作系统。

供将来参考:这不是可见性问题。我在这里得到了一个答案:

如果多个链接对象都有一个
MyException
,那么它必须在所有链接对象中都可见,而不仅仅是抛出它的对象---任何隐藏的定义都将覆盖任何默认可见的定义。对不起,我不明白你的意思。实际上,我不确定问题是可见性。还有一些东西阻止客户端捕获此异常,它是特定于GCC的。同样的代码在MSVC下成功运行。运行时错误如下所示:在抛出“MyException”实例后调用terminate