Kompilując następujący kod:Błąd przy kompilacji gcc 4.6.1 C++ 0x kod gwintów na MacOSX Lion
#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;
}
używając:
$ g++-4.6.1 -std=c++0x -pthread threading.cpp
pojawia się następujący błąd:
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
Jest to na MacOSX Lion z niestandardowym wbudowanym gcc 4.6.1. Wszystkie inne funkcje C++ 0x, które są ważne dla gcc 4.6, działają jak czar. Czy jest to błąd specyficzny dla MacOSX?
Nie wiem co się dzieje, ale wiem, że nigdy nie używam -pthread; zamiast tego używam '-lpthread' na końcu (!) opcji kompilatora – sehe
Może to być nadal w' std :: tr1'. C++ 11 nie było oficjalne po wydaniu 4.6. –
Mogę się pomylić tutaj, ale czy nie -przeczytane łącze w wątkach posix? To nie jest potrzebne w twoim projekcie. – Alan