【发布时间】:2015-03-12 10:15:12
【问题描述】:
我已经从官网下载了MinGW,并安装在我的Windows 8.1机器上。
运行 g++ --version 给我 g++.exe (GCC) 4.8.1。
我正在尝试在 MinGW 编译器中编译现有代码库,但失败并出现以下错误:
error: 'mutex' in namespace 'std' does not
name a type
private: std::mutex m_Mutex;
^
error: 'condition_variable' in namespace 's
还有更多与锁定和线程相关的错误。!
我能够在 Cygwin-64 中编译相同的代码库而没有任何问题。 我需要在 MinGW 中成功构建和编译,以便创建一些在 MSVS 上兼容的 .dll 文件。!
我已经参考了以下链接,但我无法通过解决方案。
Getting std::thread/mutex to work under Win7 with mingw and g++ 4.7.2
MinGW 4.8.1 C++11 thread support
您的帮助将不胜感激。谢谢。
【问题讨论】:
-
你启用
-std=c++11了吗? -
你是用
-std=c++11求C++11语言版本吗?所有这些花哨的线程类都是该版本的新内容。 -
我在编译时使用-std=c++11!
-
libstdc++ 不支持大部分线程库,如果你的编译器配置了 win32 线程模型,你需要一个带有 posix 线程的 gcc 版本。 This 应该是你需要的。
标签: c++ multithreading c++11 compiler-errors mingw