@GrigorySvetov

Не находит std::threads. Что не так?

C::B не находит thread. В настройках компиляции (и project>>build options, и settings>>compiler) прописал использование C++14 (thread'ы разрешены с C++11).
Код, например, такой:
#include <thread>
using namespace std;
void doIt(){
  //do nothing
}
int main(){
  thread t(doIt);
  t.detach();
  return 0;
}

В чём может быть загвоздка? Понимаю, что мой вопрос, вероятнее всего, глуповат, но все же мы всегда с чего-то начинаем...

P.S. В VS 2017 почему-то другая проблема... "Нет такого конструктора, чтобы в параметрах была только void-функция". (Использование C++14 аналогично прописал)
  • Вопрос задан
  • 1152 просмотра
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Не находит std::threads. Что не так?

Кто не находит? Какое сообщение об ошибке?
Я вижу вот что:
$ cat > thr.cpp
#include <thread>
using namespace std;
void doIt(){
  //do nothing
}
int main(){
  thread t(doIt);
  t.detach();
  return 0;
}
$ g++ -std=c++11 thr.cpp -o thr
/tmp/ccVyziLM.o: In function `std::thread::thread<void (&)()>(void (&)())':
thr.cpp:(.text._ZNSt6threadC2IRFvvEJEEEOT_DpOT0_[_ZNSt6threadC5IRFvvEJEEEOT_DpOT0_]+0x20): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status

Лечится ключом -pthread:
$ g++ -std=c++11 thr.cpp -pthread -o thr
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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