1

可能重复:
Windows 上的 C++11 线程

标题几乎描述了它,我正在尝试使用以下代码:

#include <thread>
#include <iostream>

using namespace std;

void task_1(){
    cout << "Thread 1" << endl;
}

int main(){
    thread task(task_1);
    task.join();
    return 1;
}

但它给出了编译器错误

D:\dev\cpp\trash\thread.cpp|11|错误:“线程”未声明此范围|

我正在使用带有 GNU GCC 编译器的 Code:Blocks 10.05,带有选项 -std=c++0x

Code:Blocks 是最近才下载的,所以我猜想一切都应该是最新的。

4

2 回答 2

2

您显示的错误是编译器错误,因此链接器选项不会产生任何影响。您需要确保正确配置编译器以支持 C++11 功能,例如std::thread. 使用编译器(而不是链接器)选项-std=c++0x或者-std=c++11可能是所有必要的。

于 2012-12-22T10:40:08.543 回答
0

您应该知道 C++11 支持在 GCC 中仍然是非常实验性的。支持即将到来,但仍然存在一些回归。见http://gcc.gnu.org/

于 2012-12-22T11:28:09.830 回答