免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7479 | 回复: 7
打印 上一主题 下一主题

[C++] mingw gcc4.8.1不能使用std::mutex? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-31 15:57 |只看该作者 |倒序浏览
本帖最后由 liu02180016 于 2014-10-31 15:57 编辑

我已经从http://files.1f0.de/mingw/下载mingw,然后用来编译下面一段代码:

  1. #include <memory>
  2. #include <mutex>
  3. #include <tuple>
  4. #include <string>
  5. //#include <E:/home/dev/rtags/src/rct/rct/Apply.h>

  6. void callTest(int, std::string) { }

  7. int main(int, char**) {
  8.   std::shared_ptr<int> ptr;
  9.   std::mutex mtx;
  10.   // std::unique_lock<std::mutex> lock(mtx);
  11.   // std::tuple<int, std::string> tpl(5, std::string("foo"));
  12.   // applyMove(std::bind(callTest, std::placeholders::_1, std::placeholders::_2), tpl);
  13.   return 0;
  14. }
复制代码
结果:
$ gcc test.cpp -std=c++11
test.cpp: In function 'int main(int, char**)':
test.cpp:12:3: error: 'mutex' is not a member of 'std'
   std::mutex mtx;
   ^
gcc版本:
$ gcc -v
Using built-in specs.
COLLECT_GCC=d:\dev\mingw\bin\gcc.exe
COLLECT_LTO_WRAPPER=d:/dev/mingw/bin/../libexec/gcc/i686-w64-mingw32/4.9.1/lto-w
rapper.exe
Target: i686-w64-mingw32
Configured with: ../source/gcc-4.9.1/configure --build=x86_64-unknown-linux-gnu
--target=i686-w64-mingw32 --host=i686-w64-mingw32 --disable-shared --enable-stat
ic --disable-nls --disable-multilib --prefix=/home/hendrik/mingw/target/mingw-w6
4-i686 --with-sysroot=/home/hendrik/mingw/target/mingw-w64-i686 --with-mpc=/home
/hendrik/mingw/target/pkgs/mpc/mpc-1.0.2-x86_64 --with-mpfr=/home/hendrik/mingw/
target/pkgs/mpfr/mpfr-3.1.2-x86_64 --with-gmp=/home/hendrik/mingw/target/pkgs/gm
p/gmp-6.0.0a-x86_64 --with-host-libstdcxx='-lstdc++ ' --with-cloog=/home/hendrik
/mingw/target/pkgs/cloog/cloog-0.18.1-x86_64 --with-isl=/home/hendrik/mingw/targ
et/pkgs/isl/isl-0.12.2-x86_64 --enable-languages=c,c++ --enable-threads=win32 --
enable-fully-dynamic-string --enable-lto
Thread model: win32
gcc version 4.9.1 (GCC)
想请问各位同学,遇见该问题如何解决?
ps.官网的mingw也是一样的问题。

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
2 [报告]
发表于 2014-10-31 16:15 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2014-10-31 16:16 |只看该作者
谁能提供一个支持C++11的mingw么

论坛徽章:
0
4 [报告]
发表于 2014-10-31 17:13 |只看该作者
本帖最后由 liu02180016 于 2014-10-31 17:18 编辑

回复 2# bruceteen
非常感谢,因为网络不好,网络安装装不上,我另找了一个TDM-GCC也可以了。
请问S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP这种linux下的宏定义是否被mingw支持?还是说只能用Cygwin来编译了?

论坛徽章:
0
5 [报告]
发表于 2014-11-01 00:27 |只看该作者
liu02180016 发表于 2014-10-31 16:16
谁能提供一个支持C++11的mingw么


编译的时候添加选项 -std=c++0x 看看?

论坛徽章:
0
6 [报告]
发表于 2014-11-03 10:26 |只看该作者
回复 5# vesontio


    用的-std=c++11,应该都是一样的吧,我现在已经把官方的mingw给卸载了。

论坛徽章:
0
7 [报告]
发表于 2014-11-03 22:31 |只看该作者
liu02180016 发表于 2014-11-03 10:26
回复 5# vesontio


我当初网上搜索的时候也说是-std=c++11或者-std=c++0x,但是我试了下后缀11不行,0x的可以,我也是MinGW。

论坛徽章:
0
8 [报告]
发表于 2015-03-31 14:40 |只看该作者
楼主最后解决了没有?
我也是编译 rtags,错误和楼主一样的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP