繁体   English   中英

Windows上具有MinGW 6.3 GCC的Eclipse Neon中的“线程”不是“ std”的成员

[英]'thread' is not a member of 'std' in Eclipse Neon with MinGW 6.3 GCC on Windows

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

该代码可以运行,但是如果可能的话,我想摆脱该错误。 (编辑:我不正确。尽管出现错误,当我选择“继续启动”时,它正在运行的代码是在我使用std :: thread之前编译的。当前代码无法运行。)

我需要其他版本的mingw吗? 我应该切换到mingw-w64吗?

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

GCC汇编器

GCC存档器

GCC C ++编译器

GCC C编译器

MinGW C连接器

MinGW C ++链接器

给出此错误的简单代码:

#include <thread>
#include <iostream>

void call_from_thread() {
    std::cout << "Hello!" << std::endl;
}

int main() {
    std::thread t1(call_from_thread);
    return 0;
}

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

我在这里转载:

https://godbolt.org/g/GQFTc9

编辑:顺便说一句,在您的评论中您说:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM