C ++线程无效,"错误:'线程'不是' std'"

时间:2017-11-25 22:05:28

标签: c++ multithreading c++11 gcc g++

我要保持快速和简单。

以下是我编写的代码:

#include <iostream>
#include <thread>

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

int main()
{
    std::thread myThread(myFunc);

    myThread.join();

    return 0;
}

这是我用来编译程序的命令:

g++ threads.cc -o threads.exe -std=c++11

这是我得到的错误:

threads.cc: In function 'int main()':
threads.cc:11:6: error: 'thread' is not a member of 'std'
      std::thread myThread(myFunc);
      ^
threads.cc:13:6: error: 'myThread' was not declared in this scope
      myThread.join();
      ^

我正在运行Windows 10,你可以看到我试图用GCC编译程序。

任何人都可以帮我吗?我已尝试过几种不同的方法在C ++中进行多线程,但没有一种方法有效。

后天,我将参加我校的编程比赛并使事情变得更快(程序可能只需要5秒钟来处理数据,这可能很多)我&#39;思考多线程可能真的有帮助。如果我在学校学习编程,你可能会认为我应该知道这一点,但我还没有开始这门课程而且我只是对比赛感兴趣,因为它似乎很有趣。

编辑:

我现在已经安装了包&#34; mingw32-libpthreadgc&#34;和&#34; mingw32-libpthreadgce&#34; (dev和dll类)。我还安装了&#34; mingw32-pthreads-w32&#34; (dev,doc和lic class)。

我尝试了一些不同的包含&lt; thread&gt;,&lt; pthread&gt;,&lt; pthread.h&gt;。我也试过添加标志&#34; -pthread&#34;和&#34; -lpthread&#34;。此外,我认为不管怎样我们都可以使用这些旗帜。

到目前为止没有任何工作。

如果有人能给出一个必须安装哪个包/包,要包含哪些文件/文件以及一个简短的示例代码(如果我的工作没有成功)的具体示例,我会很棒。我们不允许使用除标准库之外的任何库,但运行linux vm可能没什么问题,所以任何只有Linux的例子都可以使用。

我还没有在任何地方找到这样的例子,所以这太棒了!谢谢!

(是的,我确实重启了我的电脑)

1 个答案:

答案 0 :(得分:1)

当您安装mingw sepect posix线程而不是默认