Простая программа C ++ Thread не может быть скомпилирована

Следующая моя первая многопоточная программа. Но пока он был скомпилирован, есть ошибка связывания. Часть сообщения об ошибке:

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 #include<thread> void f(int i) {} int main() { std::thread t(f, 1); t.join(); return 0; }
-1
задан 15 March 2018 в 22:17

2 ответа

Вам нужно скомпилировать с -pthread как параметр компиляции.

Я получил ваш код для компиляции с этим (хотя я добавил функцию -Wall, чтобы дать мне все предупреждения):

g++ -pthread -out foo.exe foo.cpp

(где foo.cpp - имя входного файла, которое я использовал, содержащий ваш код)

2
ответ дан 17 July 2018 в 18:45

Вам нужно скомпилировать с -pthread как параметр компиляции.

Я получил ваш код для компиляции с этим (хотя я добавил функцию -Wall, чтобы дать мне все предупреждения):

g++ -pthread -out foo.exe foo.cpp

(где foo.cpp - имя входного файла, которое я использовал, содержащий ваш код)

2
ответ дан 23 July 2018 в 19:34

Другие вопросы по тегам:

Похожие вопросы: