目前我正在开发一个多线程项目。我发现如果给出-std = c ++ 0x选项,GCC 4.4已经支持std :: thread。我写了一个测试程序test_thread.cpp如下:
#include <iostream>
#include <thread>
void my_thread_func()
{
std::cout<<"hello"<<std::endl;
}
int main()
{
std::thread t(my_thread_func);
t.join();
return 0;
}
如果我编译并用
链接它g++ -Wall -O2 -std=c++0x -c test_thread.cpp
g++ -Wall -O2 -o test_thread test_thread.o
然后我收到了“分段错误”错误。 我阅读了GCC手册,发现我应该为编译和链接添加-pthread选项。这对我有用。如果我添加-lpthread,这也适用。我想知道这两个选项“-pthread”和“-lpthread”之间的区别,谢谢。