1

我尝试了一个基本程序:

// ThreadExample.cpp
#include <string>
#include <iostream>
#include <thread>
using namespace std;

void task1(string msg)
{
    cout << "task1 says: " << msg;
}

int main()
{
    thread t1(task1, "Hello");
    t1.join();
}

我实际上在stackoverflow上找到了一个,但我尝试使用以下方法编译它:

g++ -std=c++0x -pthread ThreadExample.cpp -o ThreadExample -lm

但是,我不断收到未声明线程的错误。我有 Windows 版 MinGW GNU 的 4.7.1 版。有什么我可以改变的,所以我可以使用 C++11 吗?

4

1 回答 1

1

还没有人为 Mingw贡献过<thread>, <mutex>etc 的实现,除非通过第三方 pthreads 实现将 Mingw 与(可选)Pthreads 支持一起使用。

我在http://gcc.gnu.org/ml/libstdc++/2012-05/msg00020.html开始了一个线程,并提供了一些关于在 Windows 本机线程方面实现缺失功能的建议,但因为我没有 Windows机器,没有其他人自愿做任何事情,什么也没发生。我对自己实现它的兴趣几乎为零,因为我从来没有为 Windows 开发过,所以它对我毫无用处,我宁愿把有限的空闲时间花在实现我实际使用的东西上。如果有人想研究它,我很乐意为他们提供建议并审查他们的代码并帮助将其引入 GCC。

于 2013-01-08T00:24:41.290 回答