在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),如果抛出异常,它不会跳转到异常处理程序;选择下一行三次后什么都不做,然后中止运行。
我可以应付调试问题,但真的希望能够使用 C++11 的线程。
显然,这个项目已经投入了很多工作,所以缺乏基本文档似乎是一种遗憾。
"版本"和"架构"字段是不言自明的,但我对其他字段有困扰(当前安装程序的值如下):
- 线程,选项posix和win32 - 异常,选项dwarf和sjlj - 构建修订版,选项0、1、2。
我在以前的安装中选择的值是 win32、seh 和 1 (显然选项从那时起已经改变,但我对于每个选项代表什么毫无头绪)。
每个选项的优缺点是什么,特别是线程模型和异常处理,哪个版本是"最佳"的?
使用 x86_64-win32-seh-rev1 时我遇到的具体问题是:
- 不支持 std :: thread 和 std :: condition_variable - 调试时(使用 Code::Blocks 作为 IDE),如果抛出异常,它不会跳转到异常处理程序;选择下一行三次后什么都不做,然后中止运行。
我可以应付调试问题,但真的希望能够使用 C++11 的线程。
std::thread
等被隐藏在_GLIBCXX_HAS_GTHREADS
后面,而我的mingw-w64安装中没有定义它。 - M.Mwin32
线程时,这个项目可以启用C++11线程、互斥锁和条件变量,看起来很有效! - M.M