次のコードをコンパイルする場合:エラーMacOSXのライオンにはgcc 4.6.1 C++ 0xのスレッドコードをコンパイルするとき
#include <iostream>
#include <thread>
using namespace std;
void hello()
{
cout << "Hello World!" << endl;
}
int main()
{
cout << "starting" << endl;
thread t(hello);
t.join();
cout << "ending" << endl;
return 0;
}
使用:
:私は次のエラーを取得する$ g++-4.6.1 -std=c++0x -pthread threading.cpp
を
threading.cc: In function ‘int main()’:
threading.cc:13:2: error: ‘thread’ was not declared in this scope
threading.cc:13:9: error: expected ‘;’ before ‘t’
threading.cc:14:2: error: ‘t’ was not declared in this scope
これはMacOSX Lion上にカスタムgcc 4.6.1がインストールされています。 gcc 4.6で有効な他のすべてのC++ 0x機能は、魅力的に機能します。これはMacOSX固有のエラーですか?
何が起こっているのか分かりませんが、私は決して使用しないことを知っています。代わりに、私は '-lpthread'をコンパイラオプションの末尾(!)に使用します。 – sehe
これはまだ' std :: tr1'にあるかもしれません。 4.6がリリースされたとき、C++ 11は公式ではありませんでした。 –
私はここで間違っているかもしれませんが、posixスレッドでリンクを深くしませんか?これはプロジェクトでは必要ありません。 – Alan