C++ 线程不工作, "error: ' 线程'不是 'std' 的成员“

标签 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 秒来处理数据,这可能会很多)我在考虑多-线程确实有帮助。您可能认为如果我在学校学习编程,我应该知道这一点,但我还没有开始那门类(class),我只是对比赛感兴趣,因为它看起来很有趣。

编辑:

我现在已经安装了软件包“mingw32-libpthreadgc”和“mingw32-libpthreadgce”(dev 和 dll 类)。我还安装了“mingw32-pthreads-w32”(dev、doc 和 lic 类)。

我尝试了几种不同的方法,包括 。我还尝试添加标志“-pthread”和“-lpthread”。另外,我认为无论如何我们都不会被允许使用这些标志。

到目前为止没有任何效果。

如果有人能给出一个具体的例子来说明必须安装哪个/哪些包,要包含哪个/哪些文件以及一个简短的示例代码(以防我的无法工作),我会很棒。除了标准库之外,我们不允许使用任何库,但运行 linux 虚拟机可能没问题,因此任何仅限 linux 的示例也适用。

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

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

最佳答案

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

关于C++ 线程不工作, "error: ' 线程'不是 'std' 的成员“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47490941/

相关文章:

PHP pthreads - 共享对象

java - 我只是想知道为什么它必须在第二个循环中加入线程

c++ - boost::msm 用法:如何设置目标状态的属性

c++ - 两行C++代码的问题

cocoa - 为什么引发 NSException 不会导致我的应用程序崩溃?

c++ - 在每个 Qt Creator 项目中添加 C++11 支持

C++11 3.3.1p4 - 同一声明区域中的声明?

c++ - 为什么所有迭代器/迭代器适配器在 C++11 中都不可 move ?

c++ - 在 C++ 中向文件添加换行符

c++ - 我的 ringupsale、showlast 和 cancel 功能有问题