4

重複の可能性:
この単純な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

「中止」とは、私のロケールでは「中止」を意味します。

4

1 に答える 1

9

あなたはそれをリンクする必要がありますpthread

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

libstdc++std::thread実装では、アプリケーションをにリンクする必要があります。そうしないと、スレッドを作成しようとしたときにlibpthreadがスローされます。std::system_error

于 2012-11-19T19:21:49.397 に答える