Al compilar el código siguiente:Error al compilar gcc 4.6.1 C++ 0x código enhebrado en 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;
}
usando:
$ g++-4.6.1 -std=c++0x -pthread threading.cpp
me sale el siguiente error:
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
Esto está en MacOSX Lion con un gcc 4.6.1 personalizado. Todas las otras características de C++ 0x que son válidas para gcc 4.6 funcionan como un amuleto. ¿Es este un error específico de MacOSX?
No sé lo que está sucediendo, pero sé que nunca uso -pthread; en lugar de eso, uso '-lpthread' al final (!) de las opciones del compilador – sehe
Puede que aún esté en' std :: tr1'. C++ 11 no era oficial cuando se lanzó 4.6. –
Puede que me equivoque aquí, pero no -pipee el enlace en los hilos posix? Esto no es necesario para su proyecto. – Alan