使用mingw和g ++ 4.7.2使std :: thread / mutex在Win7下工作

时间:2013-07-09 15:05:55

标签: c++ windows c++11 g++ mingw


问候,

我最近离开了我的unix避难所来测试一个据称是跨平台的网络库,却发现mingw不喜欢被提供给c ++ 11的东西。

我认为我缺少必需的标题,因为Win7没有包含c ++ 11支持。

用VS2012编译就好了 但是g ++拒绝。

error: 'thread' in namespace 'std' does not name a type
error: 'mutex' in namespace 'std' does not name a type

问题是:

如何获取c ++ 11标头/库的副本,即<线程>不使用VS2012安装提供的那些。

P.S。 #1我尝试了mingw-get update但它仍然不会找到<线程>
附: #2我也在使用-std = c ++ 11


此致
克里斯。

2 个答案:

答案 0 :(得分:15)

  

这些MinGW-w64构建支持C ++ 11线程,原子操作等。

     
      
  1. MinGW-builds are now integrated into the MinGW-w64 project
  2.   
  3. MinGW-builds (project is old and will not be updated, see point above)
  4.   
  5. MinGW-w64 rubenvb 64-bit32-bit版本
  6.   

请注意,MinGW-w64不仅仅是64位,但支持它,不像旧的MinGW(.org),它缺少相当多的新Vista + API,当然还有64位支持。

答案 1 :(得分:5)

另见: https://github.com/meganz/mingw-std-threads 这是std :: thread和其他的一个较轻的本机实现,没有使用pthreads的win32端口。