Linux上C++多线程报错解决办法
pthread报错
1 |
|
这个小例子直接用make编译是无法通过的。报错如下: 1
2
3
4
5/tmp/ccYB66pt.o:在函数‘std::thread::thread<void (&)()>(void (&)())’中:
1-1.cpp:(.text._ZNSt6threadC2IRFvvEJEEEOT_DpOT0_[_ZNSt6threadC5IRFvvEJEEEOT_DpOT0_]+0x21):对‘pthread_create’未定义的引用
collect2: 错误:ld 返回 1
<builtin>: recipe for target '1-1' failed
make: *** [1-1] Error 1
解决方法是在编译的时候加上 -lpthread
参数。这个类用到posix实现的线程了。 1
2g++ -o test test.cpp -lpthread
./test
结果输出: 1
hello concurent world!