c++ - 将 sysv_abi 属性与 mingw 一起使用会产生损坏的程序集
问题描述
我正在尝试使函数在 Windows 上使用 sysv_abi。
使用 C++ 异常时也会出现问题,因为出于某种原因,mingw 生成的函数没有.seh_proc
并.seh_endproc
围绕它。因此,对于下面的代码示例
会产生这样的错误Error: .seh_handlerdata used outside of .seh_proc block
x86_64-w64-mingw32-g++ A.cpp -o A
// A.cpp
#include <stdexcept>
__attribute__((sysv_abi)) void func() {
throw std::runtime_error("FAILURE");
}
int main() {
func();
}
我知道我可以在编译 mingw 时用一个标志完全禁用 SEH,但我宁愿不这样做,因为那不是可移植的。
解决方案
推荐阅读
- vuejs2 - 如何使 vuematerial 卡具有响应性
- jenkins - 在 Jenkins 中使用 pollSCM 和 Scan Multibranch Pipeline Triggers 有什么区别?
- sql - 使用 Sybase ASE 12.5.4 并查看列出/连接字符串值
- python - 避免转义不间断空格和 '<', '>'
- css - 如何在 Angular 中使用 ElementRef 访问 ::after 伪选择器
- java - 为什么 JAX-RS POST 不适用于多值映射
- vb.net - 如果组合框包含多个具有相同文本或不包含相同文本的项目,如何获取
- c# - Linq 搜索原理和子集合用 OR 语句
- python - 我的 react-native 应用程序无法向我的由 web2py 制作的 RESTful api 触发 PUT 和 POST http 请求
- spring - 使用 Spring Cloud Stream 和 RabbitMq 发送消息更改 ID