首页 > 解决方案 > 链接静态库时未捕获异常

问题描述

我开始在我的程序中实现一个 try/catch,但是当我测试它时,异常从未被捕获并且程序只是崩溃了。即使是最简单的 try/catch 用例也会失败,即

try
{
    throw 123;
}
catch (...)
{
    cerr << "This line doesn't get hit." << endl;
}

经过大量研究异常如何工作和调试后,我终于发现问题是因为我正在与-static-libstdc++导致中断的具体链接。未设置此标志时,异常工作正常。经过进一步研究,我发现了这个错误报告,但我无法真正弄清楚它的状态。看来问题仍然存在,但根据这个较早的错误报告,根据评论似乎可能有解决方法。不幸的是,如果在手动构建 GCC 之外(如果可以的话,我想避免),我并不完全理解所有评论的含义以及他们为使其工作所做的工作。

有没有办法在仍然链接静态标准库的同时解决这个错误,我将如何处理它?

标签: c++gccexception-handling

解决方案


推荐阅读