在安装MinGW-w64工具链时,我选择了Win32线程模型,因为我读到它比POSIX模型提供更好的性能。我没有资格自己对这个说法进行基准测试,但这里有一个来源。
起初,我认为这个选项只会影响GCC运行时的内部工作,而不会阻止我在我的代码中使用C++11线程,基于这个答案和这个评论,由fellow user rubenvb提供。
然而,事实并非如此。在这个MinGW-w64安装中,std::thread
支持似乎不存在。
我从命令行调用g++,除了-std=c++11
之外没有其他选项。
目前我不确定:
- rubenvb 是否错了,是否需要在 POSIX 线程模型下安装 MinGW-w64 才能编译依赖于 C++11
thread
库的代码,或者; - 我完全误解了一切,或者;
std::thread
实际上在我的情况下是被支持的,只是不直观。
我强调标题中的“开箱即用”部分。有一个名为 mingw-std-threads 的库,如 this answer 所示。然而,作为第三方选项,它与本问题无关。
所以,截至今天(2016 年 5 月),当使用 Win32 内部线程模型安装 MinGW-w64 时,是否原生支持 std::thread
依赖代码?