/usr/bin/ld: /tmp/ccXJ8LkP.o: in function `std::thread::thread<void (&)(int, char), int, char, void>(void (&)(int, char), int&&, char&&)': foo.cc:(.text._ZNSt6threadC2IRFvicEJicEvEEOT_DpOT0_[_ZNSt6threadC5IRFvicEJicEvEEOT_DpOT0_]+0x3d): undefined reference to `pthread_create' /usr/bin/ld: /tmp/ccXJ8LkP.o: in function `std::thread::thread<void (&)(int), int, void>(void (&)(int), int&&)': foo.cc:(.text._ZNSt6threadC2IRFviEJiEvEEOT_DpOT0_[_ZNSt6threadC5IRFviEJiEvEEOT_DpOT0_]+0x37): undefined reference to `pthread_create' collect2: error: ld returned 1 exit status
时间: 2024-04-13 14:30:52 浏览: 145
这个错误是由于缺少对 pthread 库的链接导致的。在使用线程库时,需要在编译时链接 pthread 库。可以通过在编译命令中添加 `-pthread` 参数来解决这个问题。
例如,将编译命令修改为:
```
g++ -pthread foo.cc -o foo
```
这样就可以正确链接 pthread 库,并解决 undefined reference 的错误。请确保在编译时添加了 `-pthread` 参数,并再次尝试运行程序。
阅读全文