Возможный дубликат:
Почему этот простой пример std :: thread не работает?
Код:
#include <iostream>
#include <thread>
void f()
{
std::cout << "hi thread" << std::endl;
}
int main()
{
std::thread t(f);
std::cout << "hi" << std::endl;
t.join();
}
Выпуск:
$ g++ -o thread_test thread_test.cpp -std=c++0x
$ ./thread_test
terminate called after throwing an instance of 'std::system_error'
what(): Operation not permitted
Abortado
«Abortado» означает «прервано» в моем регионе.
Вы должны связать это с pthread
:
g++ -o thread_test thread_test.cpp -std=c++0x -lpthread
libstdc++
«s std::thread
реализация требует, чтобы вы связали свои приложения с libpthread
иначе они бросят std::system_error
когда вы пытаетесь создать тему.
Других решений пока нет …