Подтвердить что ты не робот

Тема не работает с ошибкой: Включить многопоточность для использования std:: thread: операция не разрешена

Я создал и выполнил простой поток в моей системе. при выполнении этой программы у меня появляется сообщение об ошибке: Включить многопоточность для использования std:: thread: операция не разрешена

некоторые подробности о моей системе:

  • linux ubuntu 13.10
  • g++ 4.8.1

Я компилирую исходный код, включая библиотеку pthread

Исходный код:

#include <iostream>
#include <thread>


using namespace std;

void func(void) {
  cout << "test thread" << endl;
}


int main() {
  cout << "start" << endl;
  thread t1 (func);

  t1.join();

  cout << "end" << endl;

  return 0;
}
4b9b3361

Ответ 1

Кажется, вы пытаетесь использовать потоки С++ 11. Если это правда, то

  • правильный #include <thread> и #include <iostream>, т.е. не использовать " в этих строках и добавить # перед ними.
  • скомпилировать с g++ -std=c++11 q.cpp -lpthread (порядок зависимостей для нового g++)

Подсказка: когда вы используете потоки в статической связанной библиотеке и используете эту библиотеку в исполняемом файле, вам нужно добавить флаг -pthread в ссылку для исполняемого файла. Пример:

g++ Obj1.o Obj2.o MyStaticLib.a -o MyExecutable -pthread