我试图弄清楚如何使用即将推出的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函数?
答案 0 :(得分:3)
要使用线程,您还需要链接到线程库。
如果您还没有这样做,请将-lpthread
添加到命令行,或者添加到其他标志字段。
命令行执行(在eclipse的控制台窗口中可见)应如下所示:
gcc -std=gnu++0x -lpthread <source_file_name>.cc