【发布时间】:2013-07-07 06:23:10
【问题描述】:
您好,
我最近搬出我的 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
问题是:
如何在不使用 VS2012 安装提供的情况下获取 c++11 头文件/库的副本,即
附: #1 我试过 mingw-get update 但还是找不到
附言#2 我也在使用 -std=c++11
真诚的,
克里斯。
【问题讨论】:
-
尝试谷歌搜索“rubenvb mingw threads gcc”之类的内容并下载其中一个发行版。遇到他时别忘了感谢rubenvb
-
builds here 也支持线程。对于 rubenvb 构建,请使用
experimental-stdthread。 -
您可能还想尝试 VC++。它是 Windows 的标准编译器,虽然它有默认设置,但只要您避免使用它的 GUI,它的工作效果就可以接受。
-
@James Kanze 这太重了,太混乱了,我习惯于编写 makefile 和使用 gdb 进行调试。无论如何,谢谢你的提示:)。
-
@TheOtherGuy 当然不是。但是,您已经必须为不同的构建类型管理多组标志。这可以通过 makefile 中的 if 或包含使用
$(arch)或$(shell uname -s)构建的路径轻松处理(如果您已安装 CygWin 并在路径中)。
标签: c++ windows c++11 g++ mingw