命名空间std中的C mutex不指定类型
发布时间:2020-12-16 05:41:21 所属栏目:百科 来源:网络整理
导读:我做一个简单的c程序来演示使用锁.我使用codeblocks和gnu gcc编译器 #include iostream #include thread #include mutex using namespace std; int x = 0; // shared variable void synchronized_procedure() { static std::mutex m; m.lock(); x = x + 1; i
我做一个简单的c程序来演示使用锁.我使用codeblocks和gnu
gcc编译器
#include <iostream> #include <thread> #include <mutex> using namespace std; int x = 0; // shared variable void synchronized_procedure() { static std::mutex m; m.lock(); x = x + 1; if (x < 5) { cout<<"hello"; } m.unlock(); } int main() { synchronized_procedure(); x=x+2; cout<<"x is"<<x; } 得到以下错误:命名空间std中的mutex不指定类型.为什么我得到这个错误?编译器不支持使用锁吗? 解决方法
我碰巧也在看同样的问题.在Linux下,GCC可以正常使用std :: mutex.但是Windows上的事情似乎更糟.在< mutex> MinGW GCC 4.7.2附带的头文件(我相信你也在使用MinGW GCC版本),我发现互斥类在下面的#if保护下定义:
#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) 遗憾的是,在Windows上没有定义_GLIBCXX_HAS_GTHREADS.运行时支持根本不在. 您可能还想直接在MinGW邮件列表中提出问题,以防一些GCC专家可能会帮助您. 编辑:MinGW-w64项目提供必要的运行时支持.查看http://mingw-w64.sourceforge.net/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |