如何在Eclipse CDT中使用GCC / G ++编译和运行C ++ 0x?

时间:2010-07-04 16:55:47

标签: concurrency c++11 eclipse-cdt

我试图弄清楚如何使用即将推出的C ++版本0x。它应该在GCC 4.3+中使用gcc std = gnu ++ 0x选项。

我的简单线程程序在Eclipse CDT中使用0x编译,在Project>中添加了std = gnu ++ 0x属性> C / C ++ Build>设置>其他>其他旗帜。

#include <iostream>
#include <thread>
using namespace std;

void hello()
{
    cout << "Hello Concurrent World!" << endl;
}

int main()
{
    cout << "starting" << endl;
    thread t(hello);
    t.join();
    cout << "ending" << endl;
    return 0;
}

程序只打印“starting”并返回0.有谁知道为什么它不运行hello函数?

1 个答案:

答案 0 :(得分:3)

要使用线程,您还需要链接到线程库。 如果您还没有这样做,请将-lpthread添加到命令行,或者添加到其他标志字段。

命令行执行(在eclipse的控制台窗口中可见)应如下所示:

gcc -std=gnu++0x -lpthread <source_file_name>.cc