Почему эта программа выбрасывает ‘std :: system_error’?

Возможный дубликат:
Почему этот простой пример 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» означает «прервано» в моем регионе.

4

Решение

Вы должны связать это с pthread:

g++ -o thread_test thread_test.cpp -std=c++0x -lpthread

libstdc++«s std::thread реализация требует, чтобы вы связали свои приложения с libpthreadиначе они бросят std::system_error когда вы пытаетесь создать тему.

9

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]