'螺纹'不是' std'的成员在Eclipse Neon上使用MinGW 6.3 GCC在Windows上

时间:2017-07-31 16:32:52

标签: c++ eclipse c++11 gcc mingw32

我收到错误"帖子不是std"的成员。我已经尝试过我在网上找到的所有解决方案,但到目前为止还没有。我已经尝试将-pthread和--std = c ++ 11添加到编译器和链接器选项以及编译器规范中,并将语言标准设置为ISO C ++ 11。我正在使用带有minGW 6.3.0-1的Eclipse neon.3,并且我已经更新了所有的软件包。

代码运行,但我想尽可能摆脱错误。 (编辑:我不正确。当我选择"继续使用Launch"尽管有错误,它运行的代码是在我使用std :: thread之前编译的。当前代码没有运行。)

我需要一个不同版本的mingw吗?我应该切换到mingw-w64吗?

这是我的工具链,供参考:

海湾合作委员会汇编人

GCC Archiver

GCC C ++编译器

GCC C编译器

MinGW C Linker

MinGW C ++ Linker

提供此错误的简单代码:

{{1}}

2 个答案:

答案 0 :(得分:0)

我可以使用您的示例代码重现该错误的唯一方法是不包含--std = c ++ 11开关。我在你的文字中注意到你只在交换机前放了一个破折号,这可能是你的问题吗?尝试两个破折号。

我在这里转载:

https://godbolt.org/g/GQFTc9

编辑:顺便说一下,你在评论中说:

  

当我运行它时,它通知我存在错误,我选择"继续启动"

这是运行先前编译的结果,它不仅仅是继续并忽略错误。

答案 1 :(得分:0)

根据sbabbi的建议,“Mingw32不支持std :: thread ....你可以切换到mingw64 + winpthread(但是TLS在该配置中完全被破坏)或使用Boost.thread。”,我决定设置Boost并使用它。我也切换到了cygwin,因为它内置了Boost库,我切换到Netbeans,因为在eclipse中安装Boost证明自己是不必要的困难。