为啥异常不适用于 OSX 上的 gcc7 和 -static-libgcc?
Posted
技术标签:
【中文标题】为啥异常不适用于 OSX 上的 gcc7 和 -static-libgcc?【英文标题】:Why don't exceptions work with gcc7 and -static-libgcc on OSX?为什么异常不适用于 OSX 上的 gcc7 和 -static-libgcc? 【发布时间】:2018-06-19 05:10:33 【问题描述】:如果我用 gcc-7、-static-libstdc++
和 -static-libgcc
编译这个简单的程序;然后在 OSX 上运行
#include <exception>
#include <iostream>
int main() try
throw std::runtime_error"abc123";
return 0;
catch (const std::runtime_error& e)
std::cout << e.what() << "\n";
return 0;
失败,错误代码为 134。
为什么它不像在 linux 上使用相同的选项编译时那样打印“abc123”?
【问题讨论】:
什么是错误代码 134? 这是来自$?
的返回码。它表示Program Abort
你在 OSX 上使用 gcc7 有什么原因吗?它在我的 Mac 上的 clang 版本上按预期工作。
@JohnPerry,是的,我正在使用 GCC 的特定功能,这些功能在 clang 中不可用。
【参考方案1】:
GCC8 中的固定(-ish);查看PR86215 和相关PR80556 的更新。
【讨论】:
以上是关于为啥异常不适用于 OSX 上的 gcc7 和 -static-libgcc?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 cURL 不适用于 IIS7 上的 Windows 身份验证?
为啥这个 CSS 不适用于 Android 上的 Chrome,但适用于其他任何地方?
为啥 shadowColor: '...' - 不适用于“react-native-drawer”组件的 Android 上的抽屉样式?