无法编译简单的C++线程程序

Kaf*_*ang 5 compiling c++ g++

以下是我的第一个多线程程序。但是在编译时,出现了链接错误。错误信息的部分:

std::thread::thread<void (&)(int), int&>(void (&)(int), int&):
test.cpp (.text._ZNSt6threadC2IRFviEJRiEEEOT_DpOT0_[_ZNSt6threadC5IRFviEJRiEEEOT_DpOT0_]+0x33): undefined reference pthread_create
collect2: error ld return 1
Run Code Online (Sandbox Code Playgroud)
#include<thread>

void f(int i) {}

int main() {
        std::thread t(f, 1);
        t.join();
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

Tho*_*ard 8

您需要将 with-pthread作为编译选项进行编译。

我让你的代码用这个编译(虽然我添加了-Wall函数来给我所有警告通知):

g++ -pthread -out foo.exe foo.cpp
Run Code Online (Sandbox Code Playgroud)

foo.cpp我使用的包含您的代码的输入文件名在哪里)