窗口 – mingw-w64安装程序中的选项的含义

前端之家收集整理的这篇文章主要介绍了窗口 – mingw-w64安装程序中的选项的含义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在MinGW-W64在线安装程序中,您可以选择几个字段.但是我找不到任何有关这方面的文件,而我所做的猜测并没有给我我想要的行为.

显然,这个项目已经进行了很多工作,所以似乎很遗憾,由于缺乏基本的文件,吸收力正在被阻止.

“版本”和“架构”字段是不言自明的,但是我遇到的其他字段是(当前安装程序显示的值):

>线程,选项posix和win32
>异常,选项dwarf和sjlj
>构建版本,选项0,1,2.

我之前安装的值是win32,seh和1(显然,从那以后,选项已经改变了,但是对于什么是什么,我并不聪明.

每个选项的优缺点,特别是线程模型和异常处理,哪个版本是“最好的”?

使用x86_64-win32-seh-rev1遇到的具体问题是:

> std :: thread和std :: condition_variable不受支持
>调试时(使用Code :: Blocks作为IDE),如果引发异常,则不跳转到异常处理程序;选择下一行不执行任何操作3次,然后中止运行.

我可以应付调试问题,但是使用C 11线程真的很好.

例外

请参阅this answer for all three models (dwarf,sjlj and seh).

主题

您可以决定要使用哪种线程:POSIX线程或Windows API线程. posix线程具有便携性的优点;您可以在其他posix平台(例如linux)上使用您的代码,无需修改. win32线程api只是windows.如果你是100%的窗口,像它的api,这是没有问题的.

如果您使用std :: thread等新的C功能,那么影响就不太明显,因为您已经有了一个用于线程的标准api.如果您不直接使用posix- / win32线程api(也许std :: thread native handle?),我不知道是否真的有很大的区别?

参见:mingw-w64 threads: posix vs win32

构建修订版

因为Mingw(-w64)遵循GCC版本(4.8.x,4.9.x等),所以这只是另一个版本号.如果您不需要特定构建,则应使用最新版本.

线程问题

如果抛出的异常是:

terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std::thread: Operation not permitted

然后链接pthreads – 问题解决了.

建议

如果您没有理由使用特定选项;我个人的建议:

posix - dwarf - 2

> Posix启用C 11< thread>,< mutex>和< future>矮人更快> 2因为它是最新版本

原文链接:https://www.f2er.com/windows/371082.html

猜你在找的Windows相关文章