gcc的-pthread和-lpthread选项有什么区别?

时间:2012-01-18 03:17:54

标签: c++ gcc pthreads

  

可能重复:
  gcc - significance of -pthread flag when compiling

目前我正在开发一个多线程项目。我发现如果给出-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”之间的区别,谢谢。

0 个答案:

没有答案