También tuve varios problemas (Ubuntu 13.04 de 64 bits, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0). Muchas cosas se mencionan anteriormente, lamento repetirlas, pero además tuve problemas para utilizar
std::thread
como parte de c ++ 11 (agregar -pthread para el enlazador resuelve ese problema). De todos modos, finalmente estas configuraciones funcionaron bien:
Proyecto -> Propiedades -> C / C ++ Build -> Configuración -> Varios. Añade el
-std=c++11
bandera para los compiladores GCC y G ++. Haz clic en Aplicar.
Para el enlazador, la misma ventana, Varios, banderas de enlazador, agregaron
-pthread
bandera. Configuración de biblioteca compartida, nombre de objeto compartido, agregue el
-Wl,--no-as-needed
bandera también Haz clic en Aplicar.
C / C ++ General -> Rutas y símbolos -> Símbolos TAB, GNU C ++ seleccionado, Agregue el
__GXX_EXPERIMENTAL_CXX0X__
(sin valor)
bandera. Haz clic en Aplicar.
C / C ++ General -> Preprocesador Incluir rutas .. -> pestaña Proveedores: verificar
Configuración del compilador incorporado CDT GCC
y para "Comando para obtener especificaciones del compilador", agregue el
-std=c++11
bandera. Desmarca Compartir. Haz clic en Aplicar.
Entradas de configuración de compilación de CDT Managages, verifique esto también. Desmarca los otros dos. Haz clic en Aplicar.
Volviendo a la pestaña Entradas, GNU C ++ CDT Managages Build Setting Entradas, ahora debería ver su agregado
__GXX_EXPERIMENTAL_CXX0X__
entrada.
Eso es. Al codificar, escribir
std::
ahora puede completar automáticamente la clase de subproceso, por ejemplo, las compilaciones deberían funcionar bien y no debería haber
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
en tiempo de ejecución.
std::unique_ptr<char[]>