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

C++ 使用mingw和g+使std::thread/mutex在Win7下工作+;4.7.2,c++,windows,c++11,g++,mingw,C++,Windows,C++11,G++,Mingw,问候, 我最近搬出了我的unix庇护所,去测试一个所谓的跨平台网络库,结果发现mingw不喜欢接受c++11之类的东西 我认为我缺少所需的标题,因为Win7没有附带c++11支持 它使用VS2012编译得很好 但是g++拒绝这样做 问题是: 如何在不使用VS2012安装提供的副本的情况下获得c++11头/libs的副本,即。 注意#1我尝试了mingw get update,但仍然找不到 我也在使用-std=c++11 真诚地说, 克里斯 这些MinGW-w64构建支持C++11线程、原子操作等


问候,

我最近搬出了我的unix庇护所,去测试一个所谓的跨平台网络库,结果发现mingw不喜欢接受c++11之类的东西

我认为我缺少所需的标题,因为Win7没有附带c++11支持

它使用VS2012编译得很好
但是g++拒绝这样做

问题是:

如何在不使用VS2012安装提供的副本的情况下获得c++11头/libs的副本,即

注意#1我尝试了mingw get update,但仍然找不到
我也在使用-std=c++11



真诚地说,
克里斯

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

  • MinGW-w64 rubenvb和构建
  • 请注意,MinGW-w64不仅是64位的,而且支持64位,这与旧的MinGW(.org)不同,后者缺少很多新的Vista+API,当然还有64位支持。

    请看这里:
    这是std::thread和其他版本的一个更轻的本机实现,不使用pthreads的win32端口。

    尝试通过谷歌搜索“rubenvb mingw threads gcc”之类的内容,并下载其中一个发行版。当你遇到rubenvb时,别忘了感谢他,他也支持线程。对于rubenvb版本,请使用
    实验stdthread
    版本。您可能还想试试VC++。它是Windows的标准编译器,虽然它有其默认值,但只要您避免使用它的GUI,它就可以正常工作。@James Kanze它太重,容易混淆,我习惯于编写makefiles并使用gdb进行调试。不管怎么说,谢谢你的提示:)。@另一个人当然不会。但是,您已经需要为不同的构建类型管理多组标志。通过makefile中的if,或者使用
    $(arch)
    $(shell uname-s)
    构建路径的include,可以很容易地处理这一问题(如果您已经安装了CygWin并在路径中)。rubenvb的构建适用于x86_64,但它无法链接32位对象文件,由于缺少32位库,很遗憾没有i686版本。@Thomas i686有一个单独的部分。。。谷歌
    rubenvb i686
    @Thomas 32位:
    error: 'thread' in namespace 'std' does not name a type
    error: 'mutex' in namespace 'std' does not name a type